关于c++组合访问的问题。我是新手搞不懂。同时我想问下一个程序能否打开多个文件?我试了打不了,求解

#include<iostream>#include<string>#include<fstream>usingnamespacestd;classproduct{//商... #include<iostream>
#include<string>
#include<fstream>
using namespace std;
class product{ //商品信息
public:

product(string i,double j,int k){
name=i;
price=j;
leftnum=k;}
product(int h){num=h;}
protected:
int num;
string name;
double price;
int leftnum;};

//普通顾客
class normalcustmer{
public:
normalcustmer(int l){ID=l;};
public:
int ID;
product pro1(int);
};

int main()

{ ofstream outfile("普通顾客管理.dat",ios::out);
if(!outfile){cerr<<"1"<<endl;
exit(1);
}
class normalcustmer nor1(1);
nor1.pro1(5); //??这里是这样写的吗?根本访问不了
outfile.close();
return 0;
展开
 我来答
HalfLegend
2012-08-16 · TA获得超过174个赞
知道答主
回答量:15
采纳率:0%
帮助的人:5.1万
展开全部
我明白你的意思了,你的意思是在class normalcustmer类中有一个class product类的public成员,然后你想在main中访问它,或者说去构造它,是不是。但是,这样写不太正确,看class normalcustmer中的product pro1(int);这一句,这样写编译器会认为你定义的是一个函数,不是一个成员变量。写法有两种,1.这样定义 product* pro1;然后在main中这样nor1.pro1 = new product(5);这样是在class normalcustmer中有一个对product的指针,但没有实例化,在main中构造实例。2.如果不想用指针,那么程序的思路得改,product成员要在class normalcustmer构造的时候一块构造,因为这样的话product是normalcustmer的一部分,或者说是一块肉,当normalcustmer构造出来的时个其中的product必须出来
XIaOMoMo__
2012-08-14 · TA获得超过141个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:72.4万
展开全部
class normalcustmer nor1(1);
nor1.pro1(5); //??这里是这样写的吗?根本访问不了
outfile.close();
return 0;

这个干嘛要写在main函数体外面......
写里面不就行了么
追问
不是,太着急了。括号没写上。是在里面的
追答
那是因为你没有给product pro1(int); 这个函数定义  现在只是声明了而已
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式