红联Linux门户
Linux帮助

ubuntu 下c++编程奇怪的问题

发布时间:2007-05-27 11:21:11来源:红联作者:tianyamingyue
首先感谢大家看这个帖子,谢谢。
我初学linux,用的是ubuntu 7.04,写了一个上课时老师讲过的程序,但是问题出了一大堆,
源程序:
#include
#include
using namespace std;
class Student
{
public:
Student(char * pName="no name")
{
cout<<"Create a one student"< strcpy(name,pName);
noOfStudent++;
cout< }
~Student()
{
cout<<"Destructing one student"< noOfStudent++;
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下就没这样的错误。请高手帮我。谢谢。
文章评论

共有 4 条评论

  1. honglianqxw123 于 2012-03-12 10:18:16发表:

    #include
    #include

    using namespace std;
    class Student
    {
    protected:
    static int noOfStudent;
    char name[40];
    public:
    Student(char * pName="no name")
    {
    cout<<"Create a one student"< strcpy(name,pName);
    noOfStudent++;
    cout< }
    ~Student()
    {
    cout<<"Destructing one student"< noOfStudent++;
    cout< }
    static int number()
    {
    return noOfStudent;
    }
    };
    int Student::noOfStudent=0;

    void fn()
    {
    Student s1;
    Student s2;
    cout<}

    int main(void)
    {
    fn();
    cout< system("pause");
    return 0;
    }
    调试通过。
    错误有两处:1. static变量初始化时去掉static 2. 一个函数的右大括号错了,可能写成“大写”的了。

  2. honglianqxw123 于 2012-03-11 10:05:18发表:

    static int Student::noOfStudent=0;
    可能在在上句定义时初始化。

  3. ice123456 于 2011-10-02 12:07:06发表:

    那是你程序中使用的符号有问题,应该不是英文符号,你自己看下。

  4. xiayousen 于 2007-05-28 00:33:19发表:

    不太清楚,呵呵