当前位置:首页 > 编程开发

理解class与struct申明

webgou17年前 (2010-01-12)编程开发952
出现: 1>Compiling... 1>stdafx.cpp 1>gof.cpp 1>e:\projects\stu\gof\gof\bridge.h(62) : error C2512: 'CCustomerDataObject' : no appropriate default constructor available 1>e:\projects\stu\gof\gof\bridge.h(68) : warning C4150: deletion of pointer to incomplete type 'CDataObject'; no destructor called 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(74) : error C2027: use of undefined type 'CDataObject' 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(74) : error C2227: left of '->NextRecord' must point to class/struct/union/generic type 1>e:\projects\stu\gof\gof\bridge.h(78) : error C2027: use of undefined type 'CDataObject' 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(78) : error C2227: left of '->PriorRecord' must point to class/struct/union/generic type 1>e:\projects\stu\gof\gof\bridge.h(82) : error C2027: use of undefined type 'CDataObject' 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(82) : error C2227: left of '->AddRecord' must point to class/struct/union/generic type 1>e:\projects\stu\gof\gof\bridge.h(86) : error C2027: use of undefined type 'CDataObject' 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(86) : error C2227: left of '->DeleteRecord' must point to class/struct/union/generic type 1>e:\projects\stu\gof\gof\bridge.h(90) : error C2027: use of undefined type 'CDataObject' 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(90) : error C2227: left of '->ShowRecord' must point to class/struct/union/generic type 1>e:\projects\stu\gof\gof\bridge.h(95) : error C2027: use of undefined type 'CDataObject' 1> e:\projects\stu\gof\gof\bridge.h(55) : see declaration of 'CDataObject' 1>e:\projects\stu\gof\gof\bridge.h(95) : error C2227: left of '->ShowAllRecords' must point to class/struct/union/generic type 代码如下: interface CDataObject; class CCustomerDataObject; class CCustomersBase { public: CCustomersBase(string group)//:_dataObject(NULL) { _dataObject = new CCustomerDataObject(); this->group = group; } virtual~CCustomersBase() { if(_dataObject != NULL) delete _dataObject; } public: virtual void Next() { _dataObject->NextRecord(); } virtual void Prior() { _dataObject->PriorRecord(); } virtual void Add(string customer) { _dataObject->AddRecord(customer); } virtual void Delete(string customer) { _dataObject->DeleteRecord(customer); } virtual void Show() { _dataObject->ShowRecord(); } virtual void ShowAll() { cout<<"Customer Group: " << group<ShowAllRecords(); } private: CDataObject *_dataObject; protected: string group; }; class CCustomerObject:public CCustomersBase { public: CCustomerObject(string group="jsss"):CCustomersBase(group) { } public: // Add separator lines virtual void ShowAll() { cout<<"------------------------"< 0) { _current--; } } void AddRecord(string customer) { _customers.push_back(customer); } void DeleteRecord(string customer) { _customers.pop_back(); } void ShowRecord() { cout<<_customers[_current]<::iterator it = _customers.begin(); it != _customers.end(); it++ ) cout<<" "<<*it< _customers; int _current; }; 类似为:interface A; class B; class C { public: C(){a = new B;//这里编译不通过,应该是class B与interface只是申明 } A* a; }; interface A { public: A(){} }; class B:public A { public: B(){} }; int main(int argc, char* argv[]) { C c;c.a = new B; }

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=112

分享给朋友:

“理解class与struct申明” 的相关文章

关于函数指针

Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 ty…

Total Commander 7.5 体验

今天下载7.5版本,发现有很多功能有许多不一样.比如关机快捷操作在主界面上就没有体现出来.…

Android类库常用类型解析

在Android类库中,各种包写成android.*的方式,重要包的描述如下所示:android.app :提供高层的程序模型、提供基本的运行环境android.content 包含各种的对设备上的数据进行访问和发布的类android.database :通过内容提供者浏览和操作数据库android…

C语言中常见的置位操作

#define setbit(x,y) x|=(1˃ (pos)&1)) //用宏得到某数的某位 #define BitGet(Number,pos) ((Number) |= 1˂˂(pos)) //把某位置1 #define BitGet(Number,pos) ((Number) &= ~(1…

Java基础 三步学会Java Socket编程(二)

http://java.ccidnet.com/art/3539/20070606/1103869_1.html第二步 多个客户同时连接在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在java中,实现以…

主流 AI 代码助手功能分析(2026年3月)

 一、市场概览AI 代码助手已从"补全工具"进化为"编程代理",核心趋势:从补全到 Agent:能自主完成完整功能、跑测试、提交 PRIDE 深度整合:Cursor、Windsurf 直接 fork VSCode多模型路由:GPT-4o、Claude…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。