我正在学习 C++,只是在上课。
我以为我已经正确创建了所有内容,但是当我尝试清理/构建代码时出现错误:
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .clean-conf
rm -f -r build/Debug
rm -f dist/Debug/GNU-MacOSX/hw4
CLEAN SUCCESSFUL (total time: 57ms)
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/hw4
mkdir -p build/Debug/GNU-MacOSX
rm -f build/Debug/GNU-MacOSX/karavites_william_oct7_homework.o.d
g++ -c -g -MMD -MP -MF build/Debug/GNU-MacOSX/karavites_william_oct7_homework.o.d -o build/Debug/GNU-MacOSX/karavites_william_oct7_homework.o karavites_william_oct7_homework.cpp
karavites_william_oct7_homework.cpp: In function 'void insertAtEnd(int)':
karavites_william_oct7_homework.cpp:85: warning: NULL used in arithmetic
mkdir -p build/Debug/GNU-MacOSX
rm -f build/Debug/GNU-MacOSX/main.o.d
g++ -c -g -MMD -MP -MF build/Debug/GNU-MacOSX/main.o.d -o build/Debug/GNU-MacOSX/main.o main.cpp
mkdir -p dist/Debug/GNU-MacOSX
g++ -o dist/Debug/GNU-MacOSX/hw4 build/Debug/GNU-MacOSX/karavites_william_oct7_homework.o build/Debug/GNU-MacOSX/main.o
Undefined symbols for architecture x86_64:
"BookList::printerr()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-MacOSX/hw4] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 469ms)
我在项目中有3个文件:
- 主文件
- karavites_william_oct7_homework.cpp
- karavites_william_oct7_homework.h
我在头文件中定义了函数和类,在类(class.cpp)文件中有一个简单的方法,它只打印出一个字符串来测试所有内容。
这是我调用/创建类的主文件的样子:
#include <cstdlib>
#include "karavites_william_oct7_homework.h"
#include <iostream>
using namespace std;
using std::cout;
using std::cin;
int ch;
/*
*
*/
int getNum(int cho) {
int ans;
switch (cho) {
case 1: cout << "Please type in the ISBN you wish to search\\insert\\delete\n";
cin >> ans;
break;
case 2: cout << "Please type in the position of the element you wish to delete/insert\n";
cin >> ans;
break;
}
return ans;
}
int main(int argc, char** argv) {
BookList bl;
bl.printerr();
return 0;
}
类1.h
/*
* File: karavites_william_oct7_homework.h
* Author: willkara
*
* Created on October 7, 2013, 9:21 PM
*/
#ifndef KARAVITES_WILLIAM_OCT7_HOMEWORK_H
#define KARAVITES_WILLIAM_OCT7_HOMEWORK_H
#include <vector>
class BookList {
public:
BookList();
void insertAtEnd(int new_element);
void insertAtLocation(int new_element, int pos);
int linSearch(int isbn);
int binSearch(int element);
void deleteByPosition(int position);
void deleteByItem(int item);
void printerr();
void print();
int menu();
int countCurrent();
void bubbleSort();
void fixNulls();
void selectionSort();
private:
static int lSize;
int bList[20];
bool sorted;
int p;
};
#endif /* KARAVITES_WILLIAM_OCT7_HOMEWORK_H */
booklist 类有很多方法,但我什至无法得到一个简单的方法来打印一行来工作。
#include "karavites_william_oct7_homework.h"
#include <iostream>
using namespace std;
using std::cout;
using std::cin;
int bList[20];
int lSize = 20;
bool sorted;
int c;
BookList::BookList() {
}
void printerr() {
cout << "I will hopefully work this time.\n";
}
我是否在某处遗漏了声明?我在 mac OSX 10.7.5 上使用 NetBeans 7.3.1 进行开发。