关于class
struct Test
{
int x;
int y;
int z; void Init(int x,int y,int z);
void Function1();
void Function2();
void Function3();
};
void Test::Init(int x,int y,int z)
{
this->x = x;
this->y = y;
this->z = z;
}
void Test::Function1()
{
printf("Function1:%x\n",x);
}
void Test::Function2()
{
printf("Function2:%x\n",y);
}
void Test::Function3()
{
printf("Function3:%x\n",z);
}
private:
int x;
public:
int y;
void Init(int x,int y)
{
this->x = x;
this->y = y;
}
}; Test t;
t.Init(,); int* p = (int*)&t;
int n = *p;
int m = *(p+);
printf("%d %d\n",n,m);
class Base
{
int x;
int y;
}; int main(int argc, char* argv[])
{
Base base; base.x = ;
base.y = ; return ;
}
class Base
{
public:
int x;
int y;
}; class Sub:Base
{
public:
int a;
int b;
}; int main(int argc, char* argv[])
{
Sub sub; sub.x = ; //无法访问
sub.y = ; //无法访问
sub.a = ;
sub.b = ; return ;
} 父类中的程序继承后变成private属性;
也就是默认:
class Sub:private Base
{
public:
int a;
int b;
};
如果不希望改变成员的属性,需要在继承时声明public:
class Sub:public Base
{
public:
int a;
int b;
};
class Base
{
public:
Base()
{
x = ;
y = ;
}
private:
int x;
int y;
}; class Sub:Base
{
public:
int a;
int b;
}; int main(int argc, char* argv[])
{
Sub sub;
sub.a = ;
sub.b = ; int* p = (int*)⊂ printf("%d\n",sizeof(sub));
printf("%d\n",*(p+));
printf("%d\n",*(p+));
printf("%d\n",*(p+));
printf("%d\n",*(p+)); return ;
}
随机推荐
- Feign【首次请求失败】
当feign和ribbon整合hystrix之后,可能会出现首次调用失败的问题,出现原因分析如下: hystrix默认的超时时间是1秒,如果接口请求响应超过这个时间,将会执行fallback,spri ...
- 2019CCPC网络赛——array(权值线段树)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6703 题目大意: 给出一个n(n<1e5)个元素的数组A,A中所有元素都是不重复的[1,n]. 有 ...
- python学习-49 json模块
json模块 --------将任何类型都转换为json字符串 方法dumps import json dic={"name":"abc"} data = js ...
- c++设计原则:继承与组合
“优先使用对象组合,而不是继承”是面向对象设计的原则之一. 组合也叫“对象持有”,就是在类中定义另一类型的成员,继承会破坏类的独立性,增加系统的复杂性,一般系统的继承层次不超过3层.组合拥有良好的扩展 ...
- Scratch教程:谁是真悟空
在西游记中,有一集是“真假悟空”,六耳猕猴变成了悟空的模样与真悟空真假难辨,打的不可开交. 在Scartch中,我们常常会使用一个本体来生成多个克隆体,这在开发过程中有重要的意义.但在实际操作中,每个 ...
- 10分钟学会使用Markdown绘制UML时序图
1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...
- sonar+Jenkins 构建代码质量自动化分析平台
1.Sonar 介绍 Sonar 是一个用于管理代码质量的开源工具,可以分析代码中的bug和漏洞以及Code Smells,支持20多种编程语言的检测,如java,c/c++,python,php等语 ...
- 怎样修改原型对象prototype
修改原型对象的方法分为两种情况, 一种是对原型对象的属性方法做增删改, 一种改变原型对象的指向. 第一种: 对原型对象的属性/方法做增删改 function Person(name){ this.na ...
- ggplot2|详解八大基本绘图要素
本文首发于微信公众号 *“ 生信补给站 ” ,期待您的关注!!!* 原文链接:https://mp.weixin.qq.com/s?__biz=MzIyNDI1MzgzOQ==&mid=265 ...
- C#多线程的简单理解
一.CLR线程池基础 创建和销毁线程是一个昂贵的操作,所以CLR管理了一个线程池(thread pool),可以将线程池看成一个黑盒. CLR初始化时,线程池中是没有线程的.线程的初始化与其他线程一样 ...