当我尝试编译时会弹出此错误(对不起它的西班牙文)
#include <iostream>
#include <string>
using namespace std;
//////////////////////////////
// Contacto
class contacto
{
private:
string nombre;
string apellido;
string numTelf;
string numCel;
string correo;
string ciudad;
string pais;
string grupo;
public:
contacto (string nom, string apel, string tel, string cel, string cor, string ciu, string pai, string grup)
{
nombre = nom;
apellido = apel;
numTelf = tel;
numCel = cel;
correo = cor;
ciudad = ciu;
pais = pai;
grupo = grup;
}
void getContacto (string nom, string apel)
{
}
};
class agenda
{
private:
contacto arreglo[40];
public:
agenda();
void setContacto(int n)
{
}
};
int main ()
{
int op, N;
agenda agen;
cout<<"N:";
cin>>N;
agen.setContacto(N);
system("pause");
return 0;
}
我知道它与对象声明和议程类的构造函数有关,我试图擦除它但是生病只是给我其他错误,我只需要访问agend.setContacto(N);但它一直给我错误,并且由于Agenda类只有一个对象数组,我不知道如何创建一个有效的构造函数。
我会把课程留在这里,以便更容易看到:
班级联络人:
class contacto
{
private:
string nombre;
string apellido;
string numTelf;
string numCel;
string correo;
string ciudad;
string pais;
string grupo;
public:
contacto (string nom, string apel, string tel, string cel, string cor, string ciu, string pai, string grup)
{
nombre = nom;
apellido = apel;
numTelf = tel;
numCel = cel;
correo = cor;
ciudad = ciu;
pais = pai;
grupo = grup;
}
void setContacto (string nom, string apel, string tel, string cel, string cor, string ciu, string pai, string grup)
{
nombre = nom;
apellido = apel;
numTelf = tel;
numCel = cel;
correo = cor;
ciudad = ciu;
pais = pai;
grupo = grup;
}
void getContacto (string nom, string apel)
{
}
};
课程议程:
class agenda
{
private:
contacto arreglo[40];
public:
agenda();
void setContacto(int n)
{
};
编辑:弹出的错误是
[链接器错误]未定义对`agenda :: agenda()'
的引用ld返回1退出状态
EDIT2:contacto类只需要一个用于Agenda类的空构造函数来初始化数组
答案 0 :(得分:0)
声明一个构造函数时,还应该声明默认(空)构造函数。
在class contacto
中,您必须有一个空的构造函数,以便在contacto arreglo[40];
中声明数组class agenda
。
因此,请将以下内容添加到class contacto
中的公开部分:
contacto(){
/*you can init members...*/
}
在class agenda
中,如果你声明了一个功能并使用它,你必须实现它。在行agenda agen;
因此,如果您声明它,则必须使用{}
来实现它。如果你没有声明,那么你已经得到了默认值,因为没有其他构造函数。