错误 LNK2019:未解析的外部符号"公共:__thiscall信号
error LNK2019: unresolved external symbol "public: __thiscall Signal
当我调用main()函数时,我得到错误:
错误2错误LNK2019:未解析的外部符号"public:__thiscall Signal::Signal(void)"(??0$Signal@H@@QAE@XZ)在函数"public:__thiscall Img::Img(int,int)"中引用(??0$Img@H@@QAE@HH@Z) c:\Users\Maja\documents\visual studio 2012\Projects\Project6\Project6\Img.obj Project
有人能告诉我如何将Linker设置为不调用默认构造函数,并调用我想要的构造函数吗?
template <class T> class Signal {
protected: int N; // width of array
int M;
private: double deltaT; // sampling period
double t0; // initial time
int flag; // indicator
public:
T* sig; // array of type T
T** sig2D;
Signal(void); // constructor
Signal (int); // constructor
Signal (int,int);
Signal (int,double); // constructor
Signal(int,int,double);
Signal (int,double,double); // constructor
Signal(int,int,double,double);
};
template <class T> class Img:public Signal<T>
{
public:
Img(void);
~Img(void);
Img(int,int);
};
template <class T> Img<T>::Img(int a,int b){
Signal(a,b); // or Signal<T>::Signal(a,b);
}
int main() {
Img<int> *a=new Img<int>(2,3);
}
您需要初始化初始化程序列表中的基类:
template <class T> Img<T>::Img(int a,int b) :
Signal<T>(a,b) // here
{
// not here
}
您的版本尝试默认构造基本对象,因为初始化程序列表中没有提到它,然后创建并销毁一个临时本地对象。
相关文章:
- c++库的公共头文件中应该包含什么
- 将公共但非静态的成员函数与ALGLIB集成
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何找到2个单链表的公共节点
- 将地址分配给本地指针后,公共对象的变量将消失
- 公共与私人继承
- 如何从另一个文件继承私有成员变量和公共函数
- 如何从子成员函数修改父公共成员变量
- 为C++03编译器编写部分unique_ptr,该编译器与较新的编译器在公共代码库上运行
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 最长的公共子序列自上而下
- Qt:从另一个窗口访问公共对象
- 常量公共成员有什么问题?
- A类的定义需要B类的定义,如何在不公开B的定义的情况下公开A的公共函数?
- 没有公共构造函数作为另一个类模板成员的类模板
- 父类的私有函数会导致对具有相同名称和相似参数的子类中的公共函数的不明确调用
- 公共/私有/受保护是否会更改内存中结构的排列?
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 使公共数据成员在C++中无法访问
- 为什么C++需要公共继承,忽略朋友声明,才能使动态向下工作?