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 ...
随机推荐
- Java代理学习笔记
代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关 ...
- 数据库 ""和null的在java 持久化中的区别
如果查找的时候查找了dealerCarType中a字段,但是数据库中a字段为"",那么持久化结果dealerCarType.getA() 结果为""; 如果查找 ...
- vue class绑定 组件
当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面.这个元素上已经存在的类不会被覆盖. 例如,如果你声明了这个组件: Vue.component('my-componen ...
- Spring MVC访问静态资源
http://www.cnblogs.com/yank/p/4477204.html SpringMVC访问静态资源 在SpringMVC中常用的就是Controller与View.但是我们常常会需要 ...
- iterm2 配色
http://blog.csdn.net/sanwuhai/article/details/48729561
- Struts2使用POI创建Excel并下载
本文将讲解在Struts2框架下如何使用POI创建Office Excel文档并实现下载功能. Apache POI ,操作微软文档的Java API,简单来说就是可以用来操作Office文档的API ...
- open-source Julius speech-recognition engine
http://julius.osdn.jp/en_index.php?q=index-en.html Open-Source Large Vocabulary CSR Engine Julius ht ...
- LeetCode:二叉树的非递归中序遍历
第一次动手写二叉树的,有点小激动,64行的if花了点时间,上传leetcode一次点亮~~~ /* inorder traversal binary tree */ #include <stdi ...
- PythonCookBook笔记——字符串和文本
字符串和文本 使用多个分隔符分割字串 使用正则re.split()方法. >>> line = 'asdf fjdk; afed, fjek,asdf, foo' >>& ...
- 在Android中使App高速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能
前言 在如今的APP或者游戏中,分享功能差点儿已经成为标配.分享功能不但能够满足用户的需求.也能够为产品带来很多其它的用户,甚至能够对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司能够对产 ...