C++构造函数的疑问 下面的程序编译时说有无法解析的外部命令。好像是构造函数的问题。

2025-01-06 18:20:51
推荐回答(2个)
回答1:

你只有类声明,没有类定义,所以在连接的时候报无法找到符号的错误。把你头文件中的类声明修改成如下包含了定义的形式即可。仅仅是修改成了定义形式,具体如何实现,还需要你自己去把握,修改成如下形式就可以编译成功了,不过程序本身肯定逻辑是错误的。需要你根据情况进一步修改:
#ifndef PROPERTY_HPP
#define PROPERTY_HPP

#include
using namespace std;

template
class Property
{
private:
Name nam;
Type con;

public:
// Constructors and destructor
Property()
{
}
Property(const Name& name)
{
}
Property(const Name& name, const Type& t)
{
}
Property(const Property& source)
{
}

virtual ~Property()
{
}
};

#endif // PROPERTY_HPP

回答2:

模板定义的函数或者类,并非实体
需要将模板参数带入后才是真正意义上的类或者函数

编译器大多不支持分离编译,即定义的模板类与 调用它的代码放在不同文件

解决方式: 将h文件中的代码拷至cpp文件中即可