cannot access public member declared in class 'CObject'问题,很着急

liwenfeng521 2010-10-16 04:36:37

#include"meets.h"
#include"stdio.h"



void main()
{

room *r1= new room(210,40);
room *r2=new room(211,20);
meets *m=new meets("jingdong");
plan *p=new plan(201,07,10,14,"li");

m->addPlans(p);
m->addRooms(r1);
m->addRooms(r2);

m->findUse(1007,30);



}


#include "afxcoll.h"

class room:CObject
{
public:
int room_num;
int max;//可容纳的最大人数

room(int room_num,int max);
int getRoom_num();
int getMax();
};

class plan :CObject
{
public :
int room_num;
int day;
int from,to;
char name[10];

plan(int room_num,int day,int from,int to,char *name);
int getRoom_num();
int getDay();
void getFrom_To(int &from,int &to);
char *getName();
void setFrom_TO(int from,int to);
void setName(char *name);
};


老是提示我 new 和delete,无法连接到cobject,谁帮我看看





...全文
291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gules 2010-10-16
  • 打赏
  • 举报
回复
错了,上面的变量名复制错误!
room r1(210,40);
room r2(211,20);
meets m("jingdong");
plan p(201,07,10,14,"li");
gules 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 arong1234 的回复:]
自动对象也不想吧,只有在他派生类成员函数中才能析构

引用 5 楼 gules 的回复:
cobject重载了operator new与operator delete,私有继承后这两个函数变成了派生类的私有方法,因此通过派生类对象无法访问,也就无法使用new和delete了(不能是heap对象,但可以是自动对象)。
[/Quote]

呵呵,你试试吧!
例如就楼主的代码,写:
room r1(210,40);
room room(211,20);
meets meets("jingdong");
plan p(201,07,10,14,"li");
arong1234 2010-10-16
  • 打赏
  • 举报
回复
自动对象也不想吧,只有在他派生类成员函数中才能析构[Quote=引用 5 楼 gules 的回复:]
cobject重载了operator new与operator delete,私有继承后这两个函数变成了派生类的私有方法,因此通过派生类对象无法访问,也就无法使用new和delete了(不能是heap对象,但可以是自动对象)。
[/Quote]
libinfei8848 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gules 的回复:]
cobject重载了operator new与operator delete,私有继承后这两个函数变成了派生类的私有方法,因此通过派生类对象无法访问,也就无法使用new和delete了(不能是heap对象,但可以是自动对象)。
[/Quote]
good
gules 2010-10-16
  • 打赏
  • 举报
回复
cobject重载了operator new与operator delete,私有继承后这两个函数变成了派生类的私有方法,因此通过派生类对象无法访问,也就无法使用new和delete了(不能是heap对象,但可以是自动对象)。
arong1234 2010-10-16
  • 打赏
  • 举报
回复
你的CObject是私有继承,因此无法访问,照楼上改为public[Quote=引用 3 楼 liwenfeng521 的回复:]
我在meets 里面已经加了 #include"afx.h"
[/Quote]
liwenfeng521 2010-10-16
  • 打赏
  • 举报
回复
我在meets 里面已经加了 #include"afx.h"
ithiker 2010-10-16
  • 打赏
  • 举报
回复
class room:CObject
派生类的访问标号出错,改为下面:
class room:public CObject
底下的类似
maoxing63570 2010-10-16
  • 打赏
  • 举报
回复
Header: afx.h
#include <afx.h>

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧