[Error] ld returned 1 exit status,关于类的成员引用

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) {}

构造函数,你没有实现,只有声明

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632