当前位置: 首页 > news >正文

河南定制网站建设企业游戏软件开发就业前景

河南定制网站建设企业,游戏软件开发就业前景,泰安房价走势图,211工程建设网站成员变量和成员函数分开存储:基本概念:在C中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上每个空对象都会有一个独一无二的内存地址,所以,空对象占用内存空间的大小为1代码实现:#i…

成员变量和成员函数分开存储:

基本概念:

在C++中,类内的成员变量和成员函数分开存储
只有非静态成员变量才属于类的对象上

每个空对象都会有一个独一无二的内存地址,所以,空对象占用内存空间的大小为1

代码实现:

#include <iostream>
using namespace std;//成员变量和成员函数 分开存储
class Person
{int m_A;//非静态成员变量,属于类的对象上static int m_B;//静态成员变量,不属于类对象上void func()//非静态成员函数,不属于类对象上{;}static void func2()//静态成员函数,不属于类对象上{;}
};
int Person::m_B = 0;
void test01()
{Person p;//空对象 占用内存空间为 : 1     //C++ 编译器会给每个空对象也分配一个字节的空间, 是为了区别空对象占内存的位置cout << "size of p = " << sizeof(p) << endl;
}
void test02()
{Person p;cout << "size of p = " << sizeof(p) << endl;
}
int main()
{test01();test02();system("pause");return 0;
}

this 指针概念:

我们知道在C++中成员变量和成员函数是分开存储的
每一个非静态成员函数只会诞生一份函数实例,也就是说每个同类型的对象会共用一块代码


C++通过提供特殊的对象指针,this指针,this指针指向被调用的成员函数所属的对象

this指针是隐含每一个非静态成员函数内的一种指针
this指针不需要定义,直接使用即可

this指针的用途:
在形参和成员变量同名时,可用this指针来区分
在类的非静态成员函数中,返回对象本身,可使用return *this

代码:

#include <iostream>
using namespace std;
class Person
{
public:Person(int age){//this指针指向 被调用的成员函数 所属的对象this->age = age;}Person& PersonAddAge(Person &p){this->age += p.age;//this指向p2的指针,而*this指向的就是p2这个对象本体return *this;}int age;};
//1.解决名称冲突
void test01()
{Person p1(18);cout << "p1的年龄为:" << p1.age << endl;
} 
//2.返回对象本身用*this
void test02()
{Person p1(10);Person p2(10);p2.PersonAddAge(p1);cout << "p2的年龄:" << p2.age << endl;//链式编程思想 p2.PersonAddAge(p1).PersonAddAge(p1).PersonAddAge(p1);cout << "p2的年龄:" << p2.age << endl;
}int main()
{test01();test02();system("pause");return 0;
}

空指针访问成员函数:

C++中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针

如果用到this指针,需要加以判断保证代码的健壮性

代码:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//空指针调用成员函数class Person
{
public:void showClassName(){cout << "this is Person class " << endl;}void showPersonAge(){//报错的原因是因为传入的指针为NULLif (this == NULL){return;}cout << "age =" <<this->m_Age << endl;}int m_Age;
};
void test01()
{Person* p = NULL;p->showClassName();p->showPersonAge();}int main()
{test01();system("pause");return 0;
}

const修饰成员函数:

常函数:
●成员函数后加const后我们称为这个函数为常函数
●常函数内不可以修改成员属性
●成员属性声明时加关键字mutable后,在常函数中依然可以修改
常对象:
●声明对象前加const称该对象为常对象
●常对象只能调用常函数

代码:

#include <iostream>
using namespace std;//常函数
class Person
{
public://this指针的本质 是指针常量  指针的指向是不可以修改的//const Person * const this//在成员函数后面加上const,修饰的是this的指向,让指针指向的值也不可以修改void showPerson() const {this->m_B = 100;//this = NULL;//this指针是不可以修改指针的指向的}void func(){}int m_A;mutable int m_B;//特殊变量,即使在常函数中,也可以修改这个值,加上关键字mutable,这个const的指向可以修改};void test01()
{Person p;p.showPerson();
}
//常对象void test02()
{const Person p;//在对象前加const,变为常对象//p.m_A = 100;//修改不了p.m_B = 100;//m_B是特殊值,在常对象下也可以修改//常对象只能调用常函数!!!//p.func();//无法调用,因为这个函数不是常函数//常对象 不可以调用普通成员函数,因为普通成员函数可以修改属性
}
int main()
{test01();test02();system("pause");return 0;
}

http://www.yayakq.cn/news/300358/

相关文章:

  • 网站开发社交网络功能的作用华硕路由器做网站
  • 手册设计网站python 交互 wordpress
  • 平泉网站建设信息展示网站系统
  • 网络公司建网站棋牌游戏网站建设
  • 甘肃企业网站备案WordPress怎么用cdn
  • 大流量网站 优化东莞推广系统怎么做
  • 网站做com合net的区别dede网站数据库路径
  • 朔州怀仁网站建设网络全案推广
  • 承接网站开发文案酒店专业培训网站建设
  • 成都建设招标网站首页旅游网络营销案例
  • 网站文章优化事项绵阳银行网站建设
  • 松原建设小学网站查查企业信息查询
  • 买了网站模版怎么做做字画的网站
  • 三明市住房和城乡建设局网站商标注册的原则
  • 常州建设局考试网站wordpress如何一栏显示不出来
  • 多少钱网站设计凡科网页版登陆入口
  • 一个虚拟主机能安装2个网站吗网站建设推广员工资
  • 公司名后缀的邮箱网站关键词免费优化
  • 网站对企业的重要性wordpress 首页 html
  • 温江网站开发wordpress 评论 关闭
  • 中山市网站建设做门户类网站多少钱
  • 品牌网站建设意义手机网站建设哪家公司好
  • 宜春做网站公司怎么样站酷网首页
  • 网站优化待遇东莞网站设计建设公司
  • 延安市违法建设举报网站新手站长做游戏网站好吗
  • 网上鲜花店网站建设实施方案网站推广如何收费
  • 青岛做门户网站公司网站建设的流程怎么写
  • 网站建设 实例wordpress主题加速插件
  • 厦门制作公司网站微信小程序 开发教程
  • 用什么软件来做网站信用家装修平台官网