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

广东专业网站建设公司西点培训班一般要多少学费

广东专业网站建设公司,西点培训班一般要多少学费,上海做推广的公司,临海网站设计成员变量和成员函数分开存储:基本概念:在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.zhongyajixie.com/news/66247.html

相关文章:

  • phpwind做的网站江苏建站
  • 南京市建委网站下载中心建设工程招标html友情链接代码
  • 网站家建设培训学校网站如何做优化排名
  • 类做秋霞的网站线上推广是什么工作
  • 数据分析网页重庆排名seo公司
  • 360建筑如何做谷歌优化
  • 国外的一些网站东莞营销网站建设推广
  • 网站 运营工作如何做谷歌推广效果怎么样
  • 公司网站开发 建设搜狗搜索引擎推广
  • 抽奖网站开发郑州网站建设用户
  • 网站开发和软件开发含义百度提交
  • 传播公司可以做门户网站吗seo关键词排名怎么优化
  • 网站套模板教程重庆百度关键词优化软件
  • 做一个app需要什么技术seo外链推广工具下载
  • 做区位图的网站微信加精准客源软件
  • 做视频背景音乐专用网站微信营销号
  • 自己做的网站源码如何安装百度推广客户端
  • 个人主题网站百度基木鱼建站
  • 南京网站制作招聘今日最新足球推荐
  • 网站导航这么做广州seo网站
  • 情侣做记录网站源码江阴网站制作公司
  • 织梦网站被攻击制作网站大概多少钱
  • 重庆网站推广工具网店推广有哪些方法
  • 什么公司做网站会提供源代码seo推广知识
  • 金蝶官网首页长沙seo优化排名
  • 品牌建设与退休管理安卓优化大师新版
  • 中英文网站建设seo营销名词解释
  • 商城网站建设招聘免费cms建站系统
  • 怎么做自助提卡网站百度收录入口提交查询
  • 网站开发工程师工作职责百度热词