社区
C语言
帖子详情
大家来讨论:关于c语言中结构的问题
mjfsun
2003-10-15 11:38:28
与同事争论:c语言中结构定义时成员能不能有函数。
本人观点:不能有,也没有必要。我查了好多资料没有相应的解释,望各位高手指点一下。谢谢!
...全文
64
22
打赏
收藏
大家来讨论:关于c语言中结构的问题
与同事争论:c语言中结构定义时成员能不能有函数。 本人观点:不能有,也没有必要。我查了好多资料没有相应的解释,望各位高手指点一下。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Liulingbing
2003-10-18
打赏
举报
回复
C语言中绝对没有,这是标准。
C++中不知道标准怎么定的,不过,struct和class的功能几乎很相似了。
完全可以在struct写函数,而且类可以继承struct,反过来还没试过。
上面也有人说了,它们的默认存取级别不同。
不过,依照习惯,我想不会有人编一个struct还提供接口,如果是这样,那他恐怕写的是class。
ZhouHM
2003-10-18
打赏
举报
回复
c语言中结构定义时成员不能有函数,但是可以有函数指针
Wolf0403
2003-10-18
打赏
举报
回复
C 中的结构只能包含数据(包括函数指针),不能包含成员函数。C 中没有“成员函数”的概念,同样也没有继承和封装的概念,因为 C 不是 OO 的。
C++ 中的结构(struct )和 C 的 struct 不同,更接近 C++ 的 class:有数据封装特性,可以包含成员函数、构造、析构函数、静态函数等,可以支持继承、模板等各种特性。唯一的区别是 class 的默认访问为 private,struct 为 public。
sharkhuang
2003-10-18
打赏
举报
回复
可以啊!你结构里面包含函数指针啊!!
在c++think 里面,不是一开始就将struct 和class的关系就说了吗?
qnwolf
2003-10-18
打赏
举报
回复
C中虽然不可以,但是可以有函数指针,如果在DOS下写程序,用C写一个菜单的话,那么在结构中用函数指针就非常方便的。
yonyon
2003-10-18
打赏
举报
回复
c中的struct可以,只不过函数(操作)默认public(没有c++的封装等特性)
c++中默认private
之所以出现这种情况,是因为c向c++的过渡经历的
你可以看看<<thingking in c++>>第二章
三色
2003-10-18
打赏
举报
回复
c中不形。
c++中行,事实上在c++中,struct已经被扩展了,可以拥有和class完全相同的作用。
fifo333
2003-10-17
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
int add(int a,int b)
{
return a+b;
}
int main()
{
int a=3,b=4,c;
int (*fp)(int,int);
fp=add;
c=fp(a,b);
printf("a=%d b=%d c=%d\n",a,b,c);
system("pause");
return 0;
}
函数名后不加调用操作符()就是函数的地址,可以赋给函数指针。
函数(及函数指针)的类型是由返回值、参数表决定的,赋值时函数指针类型必须和函数类型一致。
使用函数指针的方式和使用函数的方式一样。
buaaaladdin
2003-10-16
打赏
举报
回复
C++扩展了C中的struct使它具有类的特性,但又必须考虑到和以前的代码兼容,所以在访问控制上默认为public。
不过写C++的有谁会用struct去写class呢?
mjfsun
2003-10-16
打赏
举报
回复
那在c中,指向函数的指针怎么定义哪?
instigator
2003-10-16
打赏
举报
回复
C中可以使用,但是如果那样的话
为什么不用class呢?
都是public
数据的封装性怎么解决?
acqy
2003-10-16
打赏
举报
回复
在C++中你可以这样写:
struct MyStruct {
public:
// public declarations
private:
// private declarations
}
hbDeng
2003-10-16
打赏
举报
回复
to fifo333:表述准确无误。我就不多说了
fifo333
2003-10-15
打赏
举报
回复
C中不行,但可以使用指向函数的指针间接获得此能力。
C++中是可以的,其实C++中的结构和类是本质相同的,只不过类成员缺省为private,结构成员缺省为public,在有些情况下(如com中),因为大量定义public成员,就是用struct形式了。
zcpro
2003-10-15
打赏
举报
回复
c不行,c++可以,其实在c++里struct和class的区别就是struct的成员默认是public的,而class的成员默认是private的,除此之外一摸一样(ms定义的很多接口都是用的struct,例如IUnknown)
to Hot_Forever(用钱砸死我吧) :
struct成员的访问级别和class一样可以用关键字public,protected和private来修改。
killua1213
2003-10-15
打赏
举报
回复
c中的struct不能有函数,struct中必须是变量
bing_huo
2003-10-15
打赏
举报
回复
c肯定不行
sxdtwp
2003-10-15
打赏
举报
回复
c++行,c不行
Hot_Forever
2003-10-15
打赏
举报
回复
函数+数据不就是类的概念吗,原先的C语言肯定是没有的
不过现在一般编译器都是可同时编译C和C++源代码的
所以写到struct时候一般就认作C++中的struct了,可以带函数的,,所以在现在的编译器上你写的struct里面带函数是不会出错的,只不过struct里面的成员只有一个访问级别->public
helloair
2003-10-15
打赏
举报
回复
typedef struct TEST{
void hello(){
cout<<"hello";
}
}test;
C++中可以有,有必要吗?听楼下高见
加载更多回复(2)
数据
结构
实践课程-表
数据
结构
是非常重要,无论是考研还是...课程
中
讲的用
C语言
实现面向对象的思想,借鉴了linux内核和redis源代码,非常有实现意义。希望大家能通过这个课提高自己,有任务
问题
讲随时给我留言。我非常愿意和大家
讨论
技术。
论:嵌入式
C语言
是否需要数据
结构
?
前几天看到群组里面几个小伙伴
讨论
关于嵌入式软件
C语言
编程是否需要数据
结构
。有些小伙伴说,嵌入式嘛,代码很轻松,也就不需要数据
结构
了呀~当时我觉得很奇怪,当然我也不同意他的想法,所以写下了当前的文章用以...
c语言
中
选择
结构
的作用,
C语言
中
选择
结构
的使用探讨
选择
结构
作为
C语言
中
常用的一种基本
结构
,学生在进行学习时往往会困惑于怎样使用选择
结构
、如何表达实际
问题
中
的条件等。该文主要讲解了选择
结构
中
的if语句和switch语句的使用条件以及他们之间不同的执行过程,并...
C语言
中
:一些杂散但值得
讨论
的
问题
三、argc、argv与main函数的传参四、void类型的本质五、
C语言
中
的NULL六、运算
中
的临时匿名变量七、顺序
结构
八、程序调试的debug宏 一、操作系统究竟是个什么玩意? 1、像人类社会一样的计算机软件系统(有些人只...
C语言
数据
结构
知识点小结(全)
C语言
数据
结构
小结,B站青岛大学-王卓授课笔记
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章