vC++ 局部类中的函数不能在类外定义?
#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”: 局部类成员函数没有函数体
(7): 此行有一个“{”没有匹配项
用的是vs 2008 rtm
顺便问一下 vs 2008的正式版出了没?
2008-05-03 10:00
提问者采纳
主要原因是不能进行函数的嵌套定义
所以你的函数不能放在类中去定义,但类还是可以在函数中定义的,如果你的类中没有函数的话,这个就没问题,但有函数就不行了,所以必须把类的定义也必须放到外面去了
#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;
}