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

海洋馆网站建设网站在百度上搜不到

海洋馆网站建设,网站在百度上搜不到,自定义wordpress页面模板,免费好用的crm软件成员变量和成员函数分开存储:基本概念:在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/510209/

相关文章:

  • 科技网站建设公司网站注册步骤
  • 在线建设网站 源代码顺企网南昌网站建设
  • 企业网站如何设置关键词建一个简单的网站多少钱
  • 建站 seo课程node.js做企业网站
  • 百度做公司网站有用吗海南做网站公司
  • 线上营销网站设计网易邮箱能登企业邮箱吗
  • 中华建设杂志网站找个男做那个视频网站好
  • 做网站的找哪个全国十大代理记账公司
  • 房产网站怎么做400电话公司企业发展建议
  • 合肥网站建设百姓网网页加速器手机版哪个好
  • 多个网站做计划wordpress variant
  • 网站建设文化流程用云主机做网站
  • 建设微信营销网站制作网站提交至google
  • 丽江市住房建设局网站小学网站建设情况
  • 住房建设厅网站买域名有什么用
  • 极速网站建设定制价格小程序开发平台好的有哪些
  • 定制型网站建设推广网站怎么提升流量
  • 网站的ftp南宁网站建设 超博网络
  • 流媒体网站建设规划wordpress怎么开发
  • 做网站文案用哪个软件财政局网站建设方案
  • 高端建站网站普宁市建设局网站
  • 网站建设发专业人才培养方案网站建设jsp
  • 做电商在什么网站网站建设开发公司排名
  • 东莞市长安网站建设公司装修设计网站源码
  • 网站后台怎么更新找网站建设公司哪家最好
  • 福州仿站定制模板建站做网站和网页有区别吗
  • 青岛大型网站设计公司深圳网站建设深圳
  • 广州公司建站域名卖给别人有风险吗
  • 做钓鱼网站查处遂宁移动端网站建设
  • 专业智能建站网站安徽省建设工程信息网宣城市公开招标信息