我初学linux,用的是ubuntu 7.04,写了一个上课时老师讲过的程序,但是问题出了一大堆,
源程序:
#include
#include
using namespace std;
class Student
{
public:
Student(char * pName="no name")
{
cout<<"Create a one student"<
noOfStudent++;
cout<
~Student()
{
cout<<"Destructing one student"<
cout<
static int number()
{
return noOfStudent;
}
protected:
static int noOfStudent;
char name[40];
};
static int Student::noOfStudent=0;
void fn()
{
Student s1;
Student s2;
cout<
void main()
{
fn();
cout<<"Student::number()"<
编译后的错误提示:
15.1.cpp:24: 错误: 程序中有游离的 ‘\357’
15.1.cpp:24: 错误: 程序中有游离的 ‘\275’
15.1.cpp:24: 错误: 程序中有游离的 ‘\235’
15.1.cpp:30: 错误: 有多余的限定 ‘Student::’ 在成员 ‘noOfStudent’ 上
15.1.cpp:30: 错误: ISO C++ 不允许在类内初始化非常量静态成员 ‘noOfStudent’
15.1.cpp:43: 错误: expected `}' at end of input
15.1.cpp: In constructor ‘Student::Student(char*)’:
15.1.cpp:10: 错误: ‘name’ 在此作用域中尚未声明
15.1.cpp: In static member function ‘static int Student::number()’:
15.1.cpp:26: 错误: expected primary-expression before ‘protected’
15.1.cpp:26: 错误: expected `;' before ‘protected’
15.1.cpp: At global scope:
15.1.cpp:43: 错误: expected unqualified-id at end of input
其中的“程序中有游离的 ‘\357’”这个错误,我在网上也没搜到,其他的感觉更奇怪,windows下就没这样的错误。请高手帮我。谢谢。
honglianqxw123 于 2012-03-12 10:18:16发表:
#include
strcpy(name,pName);
}
noOfStudent++;
}
}
system("pause");
#include
using namespace std;
class Student
{
protected:
static int noOfStudent;
char name[40];
public:
Student(char * pName="no name")
{
cout<<"Create a one student"<
noOfStudent++;
cout<
~Student()
{
cout<<"Destructing one student"<
cout<
static int number()
{
return noOfStudent;
}
};
int Student::noOfStudent=0;
void fn()
{
Student s1;
Student s2;
cout<
int main(void)
{
fn();
cout<
return 0;
}
调试通过。
错误有两处:1. static变量初始化时去掉static 2. 一个函数的右大括号错了,可能写成“大写”的了。
honglianqxw123 于 2012-03-11 10:05:18发表:
static int Student::noOfStudent=0;
可能在在上句定义时初始化。
ice123456 于 2011-10-02 12:07:06发表:
那是你程序中使用的符号有问题,应该不是英文符号,你自己看下。
xiayousen 于 2007-05-28 00:33:19发表:
不太清楚,呵呵