关于c和c++中的struct类型

原创 2007年09月26日 10:52:00
    c 语言中的struct类型和c++中的class很类似,那么它们你之间到底有什么区别呢?
  c语言中的struct类型在默认情况下是public,而class在默认情况下却是private类型。不知你曾经是否思考过关于在struct中是否可以和class中能否定义函数的问题。
     struct是不能定义函数的,应为函数不是一个对象。在c99中Rationale精辟的指出所有c中对象的 本质:
   All objects in c must be representalbe as a contiguous sequence of bytes!
  尽管如此,但是我们却可以在struct中定义一个函数指针,如:
 int add(int a,int b)
{
   return (a+b);
}
  struct   xy
{
  int (*lx)(int ,int );
 
 } ;
int main()
{  int res;
    struct xy  xy_a;
 xy_a . lx=add;
a=xy_a.lx(2,3);
cout<<"The result is:/n"<<a;
return  0;
}
但是正是由于它的这种定义方式,也使它变得不安全!所以应该在c中尽量不要使用这种所谓的“面向对象”的特性。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

关于C/C++中结构体(Struct)类型的sizeof结果的探讨

关于C/C++中结构体(Struct)类型的sizeof结果的探讨 看了很多关于sizeof()的使用解释和说明,对于内置类型来说,基本没有什么问题,但是一旦将sizeof()用于结...

C++对C加强专题总结:namespace,register,bool,三目运算符,类型检测,struct

 1、面向过程到面向对象的经典易错模型 class circle { public:     double r;     do...

第六讲:c/c++复合数据类型struct以及联合类型union,动态内存申请malloc和calloc

关于复杂的变量类型——结构体的定义

C++中常见数据类型的sizeof值,以及计算struct和union的详细方法

#include #include #include /*sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。*/ using namespace std; //1...

C++的struct类型的内存问题

在用struct定义一个结构体的时候,突发想象:struct变量中的不同类型是怎么样分配内存的? 于是,用VC做了个小实验 struct中定义了char、int、float等类型数据 先来看看只有一个...

C与C++中struct使用的区别

今天参看了louden用c编写的编译器,发现其中一些地方使用struct很奇妙。所以又研究了一下struct的区别,并发现c和c++在某些地方是有区别的。 struct作为类的一种特...

C/C++中的日期和时间 time_t与struct tm转换

摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中...

(C/C++)struct结构体

对程序员的经验进行评估可以通过看其对struct结构体的使用情况。 会不会用struct,怎样使用struct,是区别一个开发人员是否具备丰富开发经历的标志。 在嵌入式系统的C/C++代码编程中,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)