一段简略而不简单的代码

我编人生不编程 2009-03-07 12:03:01

#include "stdafx.h"

//结构体 作为基类
struct base{

base(){data=4;}

public:
int data;
};

//注意::子类 继承结构体 base
class derive:public base{

public:
derive():base(){}
void setdata(int i){this->data=i;}
void showdata(){
printf("%d",this->data);
}
};


void main()
{
derive obj;
//obj.setdata(6);
obj.showdata();

}

...全文
178 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2009-03-07
  • 打赏
  • 举报
回复
不觉得有什么好处,如果是C++编程,不用结构似乎更好。结构更多只是和C兼容的,class的功能是它完整的超集
关注于这种小技巧是浪费时间,实在想不出有什么值得骄傲、巧妙的

[Quote=引用 1 楼 liudingfa 的回复:]
补充:
C++里面结构体和类的巧妙使用方法
[/Quote]
OenAuth.Net 2009-03-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lingyin55 的回复:]
如果默认都为公有的话,为什么在struct里面定义int data;还要加一个public,请指教。

引用 4 楼 anglecloudy 的回复:
结构体和类原本就可以这么用
只是结构体的默认访问权限是公有,而类是私有(而且类可以用作模板关键字)
结构体代表的是C中的数据结构
而类代表的是C++中的面向对象
[/Quote]
呵呵,这个....应该请教LZ
LZ估计是刚刚知道struct还可以这么用,兴奋了一下,发个帖SHOW一下
grellen 2009-03-07
  • 打赏
  • 举报
回复
没看出什么不简单
pcjbird 2009-03-07
  • 打赏
  • 举报
回复
学习~~~~~~
lzonline01 2009-03-07
  • 打赏
  • 举报
回复
什么意思呀
zwicker 2009-03-07
  • 打赏
  • 举报
回复
struct 和class除了初始访问控制不同外,没有其他不同.struct默认访问控制为public;class默认访问控制为private
  • 打赏
  • 举报
回复
代码有问题吗?
blackmurder 2009-03-07
  • 打赏
  • 举报
回复
struct和class在CPP里是一样的,唯一区别在于struct访问权限默认为public而class是private
lingyin55 2009-03-07
  • 打赏
  • 举报
回复
如果默认都为公有的话,为什么在struct里面定义int data;还要加一个public,请指教。

[Quote=引用 4 楼 anglecloudy 的回复:]
结构体和类原本就可以这么用
只是结构体的默认访问权限是公有,而类是私有(而且类可以用作模板关键字)
结构体代表的是C中的数据结构
而类代表的是C++中的面向对象
[/Quote]
tangshuiling 2009-03-07
  • 打赏
  • 举报
回复
眼拙,看不出什么问题
blackmurder 2009-03-07
  • 打赏
  • 举报
回复
不觉得有什么不简单 LZ想说明什么
OenAuth.Net 2009-03-07
  • 打赏
  • 举报
回复
结构体和类原本就可以这么用
只是结构体的默认访问权限是公有,而类是私有(而且类可以用作模板关键字)
结构体代表的是C中的数据结构
而类代表的是C++中的面向对象
lingyin55 2009-03-07
  • 打赏
  • 举报
回复
up 学习 弱问一个菜鸟问题,结构体里面的数据不是都为public属性吗?

//结构体 作为基类
struct base{

base(){data=4;}

public:
int data;
};
OenAuth.Net 2009-03-07
  • 打赏
  • 举报
回复
呵呵,UP
  • 打赏
  • 举报
回复
补充:
C++里面结构体和类的巧妙使用方法
wushichao1987 2009-03-07
  • 打赏
  • 举报
回复
留名再看
vitamin_ease 2009-03-07
  • 打赏
  • 举报
回复
呵呵。楼主可以去看看枚举可以怎么用,相信会更兴奋的。
jakqigle 2009-03-07
  • 打赏
  • 举报
回复

#include <cstdio>
//结构体 作为基类
struct base{

base(){data=4;}
virtual void showdata(){ printf("%d",data);}

public:
int data;
};

//注意::子类 继承结构体 base
class derive:public base{

public:
derive():base(){}
void setdata(int i){data=i;}
void showdata(){
printf("%d",data);
}
};


void main()
{
derive obj;
// obj.setdata(6);
obj.showdata();

}

65,211

社区成员

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

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