C结构体、C++结构体、C++类的区别
int My_Add(int a, int b)
{
return a + b;
}
int My_Sub(int a, int b)
{
return a - b;
}
struct CTest
{
int(*Add)(int, int); //函数指针
int(*Sub)(int, int);
}; int main()
{
struct CTest test;
int ret = 0;
test.Add = My_Add;
test.Sub = My_Sub;
ret = test.Add(3, 5);
printf("%d", ret);
}
c) 比如说这个结构体吧:
struct CTest
{
char ch;
int num;
};
int main()
{
CTest test;
test.num = 1;
printf("%d", test.num);
}
struct A
{
public:
A(){};
virtual void Dynamic()
{
cout << "A" << endl;
}
protected:
void fun();
private:
int m_Data;
}; struct B:public A
{
public:
virtual void Dynamic()
{
cout << "B" << endl;
}
};
int main()
{
A * pa = new B;
pa->Dynamic();
}
拓展部分:再来看一看Java之中类和结构体的区别,来看一个例子:
static void Main(string[] args)
{
int strNumberA = 100;
int strNumberB = strNumberA;//编译器会先复制strNumberA的值,后赋给strNumberB,会在内存的两个地方储存值100 MyVector vA = new MyVector();
MyVector vB = vA;//引用变量的赋值 赋值操作完成后,两个变量都指向同一内存地址
vA.Value = 100;
Console.WriteLine(vA.Value + " 等于 " + vB.Value);//由于vA和vB指向同一内存地址,所以vB.Value的值也为100
vB.Value = 200;
Console.WriteLine(vA.Value + " 等于 " + vB.Value);//同理vA.Value =vB.Value MyStruct structA = new MyStruct();
MyStruct structB = structA; //结构是值类型 赋值操作完成后,两个结构中的结构信息一致。注意是“结构中的信息”一致。
structA.Value = 100;
structB.Value = 200;
Console.WriteLine(structA.Value + " 不等于 " + structB.Value);//同理vA.Value !=vB.Value
Console.Read();
}
private class MyVector
{
public int Value { get; set; }
}
private struct MyStruct
{
public int Value;
}
最后做一个小小的总结:
(2) 在表示数据量大、逻辑复杂的大对象时,首选class。
C结构体、C++结构体、C++类的区别的更多相关文章
- C#中结构体和类的区别
结构体和类同样能够定义字段,方法和构造函数,都能实例化对象,这样看来结构体和类的功能好像是一样的了,但是他们在数据的存储上是不一样的 C#结构体和类的区别问题:这两种数据类型的本质区别主要是各自指向的 ...
- C#中的结构体与类的区别
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
- C#中的结构体与类的区别 (转载)
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
- C#中结构体与类的区别
一.结构体和类非常相似 1,定义和使用非常相似,例子如下:public struct Student{ string Name; int Age;}public class Questio ...
- [转]C#中的结构体与类的区别
C#中的结构体与类的区别 经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字cla ...
- C#结构体和类的区别(转)
结构体和类的区别: 在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同,虽 ...
- C++结构体和类的区别总结及各自优缺点
结构体在栈里.而类在堆里. 结构体为值类型.而类是引用类型 结构体不能被继承,而类可以. 结构体无构造函数 类可以定义虚函数,而结构体不行. 结构在数据参数方面效率更高,简单数组的应用中成本很低.而类 ...
- C++中结构体与类的区别(结构不能被继承,默认是public,在堆栈中创建,是值类型,而类是引用类型)good
结构是一种用关键字struct声明的自定义数据类型.与类相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,不过,结构是值类型. 1.结构的构造函数和类的构造函数不同. a. ...
- C#结构体+结构体与类的区别
C# 结构(Struct) 在 C# 中,结构是值类型数据结构.它使得一个单一变量可以存储各种数据类型的相关数据.struct 关键字用于创建结构. C# 结构的特点 您已经用了一个简单的名为 Boo ...
随机推荐
- 最新ssh2构架
构架要求: 1.最新ssh2jar包. 2.使用全注解. 3.给锁机制 4.缓存. 5.使用权限构架. 6. 前台构架用bootstraps. 今天任务: 搭建php环境.看代码.整理ssh2架构. ...
- odoo小数精确度
python round() 函数 Python用于四舍五入的内建函数round() ,它的定义为 意思是, 将 小数部分保留到 ndigits 指定的 小数位,也就是 精度保持到 ndigi ...
- Machine Learning:Neural Network---Representation
Machine Learning:Neural Network---Representation 1.Non-Linear Classification 假设还採取简单的线性分类手段.那么会面临着过拟 ...
- gulp css html image js 合并压缩
安装node.js npm 以及安装gulp等方法我就不在这里赘述了. 接下里我主要介绍的是Gulpfile文件里面的配置该如何书写. var gulp = require('gulp');//引 ...
- Markov Decision Processes
为了实现某篇论文中的算法,得先学习下马尔可夫决策过程~ 1. https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/conte ...
- Android 调用QQ登录
调用QQ登录 在如今的项目开发.调用第三方登录.差点儿是必须的,而调用QQ登录也是不可缺少的,这里把相关代码分享出来,希望能拿去就能够用,降低项目开发的时间.希望对大家实用. 1,去QQ ...
- (转)c#(wince)中使用多线程访问winform中控件的问题
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍. 首先来看传统方法: public partial ...
- EasyDarwin开源流媒体云平台之语音对讲功能设计与实现
本文由EasyDarwin开源团队成员Alex贡献:http://blog.csdn.net/cai6811376/article/details/52006958 EasyDarwin云平台一直在稳 ...
- 嵌套的EasyUI 怎么获取对象
说明: 1.本篇文章介绍的是,怎么获取嵌套的Easyui 中的id为pageDetail的iframe对象 2.刚开始的页面效果如下图,是一个只有north,center区域的easyUI easy ...
- Vue 组件实例属性的使用
前言 因为最近面试了二.三十个人,发现大部分都还是只是停留在 Vue 文档的教程.有部分连教程这部分的文档也没看全.所以稍微写一点,让新上手的 Vuer 多了解 Vue 文档的其他更需要关注的点. 因 ...