gpt4 book ai didi

c++ - 为什么这段代码会产生未知错误?

转载 作者:行者123 更新时间:2023-12-03 07:11:39 25 4
gpt4 key购买 nike

我正在尝试将新的Author添加到Document,但出现类似于以下错误:

undefined reference to 'Document::numberofbjects'
您能告诉我这个错误是什么,为什么我会得到它?
#include <iostream>
#include <string.h>
using namespace std;

class Author{
string name;
public:
Author(){}
Author(string n){
name = n;
}
string getname(){
return name;
}
};

class Document{
string title;
Author *authors;
static int numberofbjects;
public:
Document(string t,Author a[],int n){
title=t;
authors = a;
numberofbjects=n;
}
void addauthor(Author a1){
Author *ptr=new Author[numberofbjects+1];
for(int i=0;i<numberofbjects;i++){ //another question below
ptr[i]=authors[i];
}
ptr[numberofbjects]=a1;
authors=ptr;
numberofbjects++;
}
void printAuthors(){
for(int i=0;i<numberofbjects;i++){
cout<<authors[i].getname()<<endl;
}
}

};

int main()
{
Author a1("Jony");
Author a2("Jonson");
Author array[2];
array[0]=a1;
array[1]=a2;
Document D1("ARK",array,2);
Author a3("Jonthan");
D1.addauthor(a3);
D1.printAuthors();

return 0;
}

1错误是由答案推断出来的,很可能是链接器错误

最佳答案

您已经声明了static变量Document::numberofbjects,但未定义它,因此链接阶段将失败。
将其添加到类定义之外:

int Document::numberofbjects = 0;
Demo

关于c++ - 为什么这段代码会产生未知错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65037397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com