关于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; 展开
#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; 展开
2个回答
展开全部
我明白你的意思了,你的意思是在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必须出来
展开全部
class normalcustmer nor1(1);
nor1.pro1(5); //??这里是这样写的吗?根本访问不了
outfile.close();
return 0;
这个干嘛要写在main函数体外面......
写里面不就行了么
nor1.pro1(5); //??这里是这样写的吗?根本访问不了
outfile.close();
return 0;
这个干嘛要写在main函数体外面......
写里面不就行了么
追问
不是,太着急了。括号没写上。是在里面的
追答
那是因为你没有给product pro1(int); 这个函数定义 现在只是声明了而已
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询