当前位置:编程学习 > C/C++ >>

我写的C++代码错在哪了?

#include <iostream>
using namespace std;
class student{
public:
 student(int a=10,int b=5):at(a),bt(b){}
 int sum;
private:
 int at;
 int bt;};
int student::sum(){
 return(at*bt);}
int main(){
 student stu[3]={
  student(8,2),
  student(7,6),


  student(9,10),};
 cout<<"stu[0]"<<stu[0].sum<<endl;
 cout<<"stu[1]"<<stu[1].sum<<endl;
 cout<<"stu[2]"<<stu[2].sum<<endl;
 return 0;}


 

追问:D:\stu_test\bcszwj\c++\对象数组\对象数组.cpp(9) : error C2063: 'sum' : not a function
D:\stu_test\bcszwj\c++\对象数组\对象数组.cpp(9) : error C2040: 'sum' : 'int (void)' differs in levels of indirection from 'int'
D:\stu_test\bcszwj\c++\对象数组\对象数组.cpp(9) : fatal error C1903: unable to recover from previous error(s); stopping compilation
Error executing cl.exe.
答案:你的程序问题主要出现在混淆成员方法和数据成员,还有程序必须在英文输入法状态下编写才行,

修改之后的代码为:(以表明出错的地方)

#include <iostream>
using namespace std;
class student{
public:
 student(int a=10,int b=5):at(a),bt(b){}
 int sum();  //sum()是一个方法,不是一个成员变量,必须加括号
private:
 int at;
 int bt;
};
int student::sum(){
 return(at*bt);
}
int main(){
 student stu[3]={student(8,2),student(7,6),student(9,10),};
 //逗号和分号必须在英文输入发下输入
 cout<<"stu[0] "<<stu[0].sum()<<endl;  //调用时也必须加括号
 cout<<"stu[1] "<<stu[1].sum()<<endl;
 cout<<"stu[2] "<<stu[2].sum()<<endl;
 return 0;
}

运行截图如下:

你应该吧错误的信息发布上来,同时根据以前的C++标准的话,你的student构造函数的第一个参数是不能设置默认值的

上一个:如何用C++如何提取一行中的某个数据?
下一个:一个c++的简单程序,高手帮我调一下

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,