vC++ 局部类中的函数不能在类外定义?

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:53:10
#include <iostream>
#include <string>
using namespace std;

int main()
{
class t1
{public:
void display();
//{cout<<"name:"<<name<<endl<<"age:"<<age<<endl<<"sex:"<<sex<<endl<<"addr:"<<addr<<endl<<"num:"<<num<<endl<<"title:"<<title;}
string name,addr,title;
char sex;
int age,num;
};

void t1::display(){cout<<"name:"<<name<<endl<<"age:"<<age<<endl<<"sex:"<<sex<<endl<<"addr:"<<addr<<endl<<"num:"<<num<<endl<<"title:"<<title;}
return0;
}

编译出错
(10)error C2601: “main::t1::display”: 本地函数定义是非法的
(17)warning C4822: “main::t1::display”: 局部类成员函数没有函数体

主要原因是不能进行函数的嵌套定义

所以你的函数不能放在类中去定义,但类还是可以在函数中定义的,如果你的类中没有函数的话,这个就没问题,但有函数就不行了,所以必须把类的定义也必须放到外面去了

#include <iostream>
#include <string>
using namespace std;

class t1
{
public:
void display();
string name,addr,title;
char sex;
int age,num;
};
void t1::display()
{
cout<<"name:"<<name<<endl<<"age:"<<age<<endl
<<"sex:"<<sex<<endl<<"addr:"<<addr<<endl
<<"num:"<<num<<endl<<"title:"<<title;
}

int main()
{

return 0;
}

正式版的早就出了,去官方网站上去下载
Visual Studio 2008 Team Suite这个是最终版本

类与函数的定义,写到main的外面就可以了!