C++ 处理向量、类和继承;获取VS中未解析的外部符号
此赋值的目的是将十进制转换为二进制。我必须遵循算法的伪代码来完成转换过程,但其余部分取决于我们如何构造程序。然而,我们必须使用类并且至少有一个继承。我基本上已经完成了代码,但我似乎无法测试它,因为我只是看不到一些非常简单的东西。我一直在尝试各种各样的事情,但似乎我只是在断断续续地编写代码,根本不知道到底出了什么问题。这是我的源代码,非常感谢您的帮助 当您运行代码时,我得到一个LNK2019:未解决的外部符号错误C++ 处理向量、类和继承;获取VS中未解析的外部符号,c++,class,inheritance,vector,C++,Class,Inheritance,Vector,此赋值的目的是将十进制转换为二进制。我必须遵循算法的伪代码来完成转换过程,但其余部分取决于我们如何构造程序。然而,我们必须使用类并且至少有一个继承。我基本上已经完成了代码,但我似乎无法测试它,因为我只是看不到一些非常简单的东西。我一直在尝试各种各样的事情,但似乎我只是在断断续续地编写代码,根本不知道到底出了什么问题。这是我的源代码,非常感谢您的帮助 当您运行代码时,我得到一个LNK2019:未解决的外部符号错误 #include <iostream> #include <vec
#include <iostream>
#include <vector>
using namespace std;
class binaryConverter
{
public:
void print();
binaryConverter();
binaryConverter(int);
void addBit(int);
private:
vector<int> binary;
};
class decimalToBinary : public binaryConverter {
public:
void print();
void process(int);
decimalToBinary();
private:
};
void binaryConverter::addBit(int d){
binary.push_back(d);
}
void decimalToBinary::process(int num)
{
if (num >= 128){
num = 128 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 64 && num < 128){
num = 64 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 32 && num < 64){
num = 32 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 16 && num < 32){
num = 16 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 8 && num < 16){
num = 8 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 4 && num < 8){
num = 4 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 2 && num < 4){
num = 2 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
if (num >= 1 && num < 2){
num = 1 - num;
decimalToBinary::addBit(1);
}
else{
decimalToBinary::addBit(0);
}
}
void binaryConverter::print(){
for (vector<int>::iterator it = binary.begin(); it != binary.end(); it++){
cout << *it << endl;
}
}
int main(){
decimalToBinary test;
test.process(150);
test.print();
return 0;
}
通过阅读您的代码,我看到:
binaryConverter();
binaryConverter(int);
及
您声明了构造函数,但没有定义它们
而且您的decimalToBinary::print方法也没有定义。当您为类创建对象时,如果一个类没有配备构造函数,编译器将为一个类生成代码,调用隐式默认构造函数 分贝试验;调用decimalToBinary::decimalToBinary 创建对象不需要声明和定义构造函数。 如果声明构造函数,则必须定义它们。否则,您将得到构造函数的链接错误
如果要使用binaryConverter类中定义的print方法,则无需在decimalToBinary类中声明print方法。可能您尚未提供某些方法的定义。请查看整个错误行。
decimalToBinary();