C++中定义类的成员函数,但在引用的时候不知道哪里出了问题
//输出有问题,但我没有找到
#include<iostream>
using namespace std;
#include<string.h>
class Cbook //声明类Cbook 均应以C开头
{
private: //下面的为私有数据
char * m_pczName;
int m_nPages;
int m_nEdition;
public: //下面的为公有数据和函数
void GetBookName(char *pName);
int GetTotalPages();
int GetBookEdition();
private: //下面的为私有数据和函数
void SetBookName(char *pName);
void SetTotalPages(int nPages);
void SetBookEdition(int nEdition);
public: //下面的为公有数据和函数
Cbook();
} ;
void Cbook::GetBookName(char *pName) //定义成员函数
{
strcpy(pName,m_pczName);
}
int Cbook::GetBookEdition() //定义成员函数
{
return m_nEdition;
}
void Cbook::SetBookName(char *pName) //定义成员函数
{
if(m_pczName!=0)
delete[] m_pczName; //如果已经有了旧名字,删除它,然后重新命名
m_pczName=new char[strlen(pName)+1];//重新分配存储空间
strcpy(m_pczName,pName); //复制字符串
}
void Cbook::SetTotalPages(int nPages) //定义成员函数
{
m_nPages=nPages;
}
void Cbook::SetBookEdition(int nEdition)//定义成员函数
{
m_nEdition=nEdition;
}
int main()
{
Cbook op1;
int i;
i=op1.GetBookEdition();
cout<<i<<endl;
}
(.text+0xf4): undefined reference to `Cbook::Cbook()'
[Error] ld returned 1 exit status
main()函数中,我试过了在Cbook op1后面加括号,但没能实现
能正常运行就行
你声明了Cbook的默认构造函数,但是没有定义。
Cbook::Cbook() : m_pczName(nullptr), m_nPage(0), m_nEdition(0) {}
构造函数,你没有实现,只有声明
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!