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

那个网站可以做空比特币网络营销是什么一种市场营销方式

那个网站可以做空比特币,网络营销是什么一种市场营销方式,英语网站的建设需要,目前主流搜索引擎是哪种4.3 C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 #include iostreamclass Person { public:Person() {mA 0;} //非静态成员变量占对象空间int mA;//静态成员变量…4.3 C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 #include iostreamclass Person { public:Person() {mA 0;} //非静态成员变量占对象空间int mA;//静态成员变量不占对象空间static int mB;//函数也不占对象空间所有函数共享一个函数实例void func() {std::cout mA: this-mA std::endl;} //静态成员函数也不占对象空间static void sfunc() {} };int main() {//实例化一个对象为p1Person p1;std::cout Person:sizeof(Person) std::endl;std::cout p1: sizeof(p1) std::endl;return 0; }运行结果如下 4.3.2 this指针概念 通过4.3.1我们知道在C中成员变量和成员函数是分开存储的 每一个非静态成员函数只会诞生一份函数实例也就是说多个同类型的对象会共用一块代码 那么问题是这一块代码是如何区分那个对象调用自己的呢 c通过提供特殊的对象指针this指针解决上述问题。 this指针指向被调用的成员函数所属的对象 this指针是隐含每一个非静态成员函数内的一种指针 this指针不需要定义直接使用即可 this指针是一个常量指针可以看做const type * this 指针的指向不能修改this NULL这样是错的。 this指针的用途 当形参和成员变量同名时可用this指针来区分 在类的非静态成员函数中返回对象本身可使用return *this #include iostreamclass Person { public:Person(int age) {//1 使用this区分形参和成员变量this-age age;} Person PersonAddPerson(Person p) {this-age p.age;//2 返回对象本身,this为指针所以加上*return *this;} //定义一个成员变量属性为publicint age; };void test01() { //实例化一个对象为p1,会调用有参构造函数Person p1(10);//打印p1.age的结果std::cout p1.age: p1.age std::endl;//实例化一个对象为p2Person p2(12);//p2.PersonAddPerson(p1)这是使用p2对象调用成员函数PersonAddPerson(p1)//成员函数返回值是对象p2然后再次调用成员函数p2.PersonAddPerson(p1).PersonAddPerson(p1).PersonAddPerson(p1);std::cout p2.age: p2.age std::endl;}int main() {test01();return 0; }运行结果如下 #include iostreamclass MyClass { public:void printAddress() {std::cout Address of the current object: this std::endl;}void modifyObject() {// 下面的语句是非法的会导致编译错误// this nullptr; // Error: assignment of read-only parameter this// 修改成员变量是合法的data 42;}private:int data; };int main() {MyClass obj;// 调用成员函数显示对象地址obj.printAddress();// 调用修改对象的函数obj.modifyObject();return 0; } 4.3.3 空指针访问成员函数 C中空指针也是可以调用成员函数的但是也要注意有没有用到this指针 如果用到this指针需要加以判断保证代码的健壮性 示例 #include iostreamclass Person { public:void ShowClassName() {std::cout Person类 std::endl;} void ShowPerson() {if(this NULL)return ;std::cout age: age std::endl;} int age;};void test01() { //创建一个对象指针Person* p1 NULL;//使用对象指针调用成员函数p1-ShowClassName();//使用对象指针调用成员函数成员函数使用了this指针空对象指针就使用不了 p1-ShowPerson();}int main() {test01();return 0; }执行结果如下 成员函数去掉this判断部分 #include iostreamclass Person { public:void ShowClassName() {std::cout Person类 std::endl;} void ShowPerson() {/*if(this NULL)return ;*/std::cout age: age std::endl;} int age;};void test01() { //创建一个对象指针Person* p1 NULL;//使用对象指针调用成员函数p1-ShowClassName();//使用对象指针调用成员函数成员函数使用了this指针空对象指针就使用不了p1-ShowPerson();}int main() {test01();return 0; }再次编译执行结果如下 对于上面出现的错误做一个解释 代码中如果去掉了 if(this NULL) 的检查并试图在一个空指针上调用 ShowPerson 函数程序会尝试通过一个空指针来访问 age 成员变量。对空指针进行解引用是一种未定义的行为通常会导致段错误。 具体步骤如下 声明一个空指针例如 Person* nullPointer nullptr;。尝试在这个空指针上调用一个成员函数nullPointer-ShowPerson();。在 ShowPerson 函数内部尝试通过 this-age 访问 age 成员变量。由于 this 是一个空指针尝试访问 this-age 会导致段错误。 4.3.4 const修饰成员函数 常函数 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后在常函数中依然可以修改 常对象 声明对象前加const称该对象为常对象 常对象只能调用常函数 const修饰成员函数 #include iostreamclass Person { public://默认构造函数Person() {p_a 0;p_b 0;} void ShowPerson() {//隐含在每个成员函数内部都有一个this指针,this是一个常量指针//this NULL; 常量指针的内容不能修改this-p_a 10;//对于常量指针的指向的内容可以修改 } void ShowPerson2() const {//隐含在每个成员函数内部都有一个this指针,this是一个常量指针//this NULL; 常量指针的内容不能修改//const修饰成员函数表示指针指向的内存空间的数据不能修改除了mutable修饰的变量//this-p_a 20;//p_b变量被mutable修饰可以修改this-p_b 100;//常函数中变量不能修改//p_a 12;//使用mutable修改的变量可以修改p_b 22; } public:int p_a;mutable int p_b;};void test01() { //创建一个对象会调用默认构造函数Person p1;//查看变量p_a和p_b的值,调用构造函数后值都为0std::cout p_a: p1.p_a p_b: p1.p_b std::endl;//使用对象调用成员函数p1.ShowPerson();//查看此时变量p_a和p_b的值,p_a会变为10,p_b为0std::cout p_a: p1.p_a p_b: p1.p_b std::endl;//使用对象调用常量成员函数p1.ShowPerson2();//查看此时变量p_a和p_b的值,p_a会为10,p_b为22std::cout p_a: p1.p_a p_b: p1.p_b std::endl;}int main() {test01();return 0; }运行结果如下图 const修饰对象 #include iostreamclass Person { public://默认构造函数Person() {p_a 0;p_b 0;} void ShowPerson() {//隐含在每个成员函数内部都有一个this指针,this是一个常量指针//this NULL; 常量指针的内容不能修改this-p_a 10;//对于常量指针的指向的内容可以修改 } void ShowPerson2() const {//隐含在每个成员函数内部都有一个this指针,this是一个常量指针//this NULL; 常量指针的内容不能修改//const修饰成员函数表示指针指向的内存空间的数据不能修改除了mutable修饰的变量//this-p_a 20;//p_b变量被mutable修饰可以修改this-p_b 100;//常函数中变量不能修改//p_a 12;//使用mutable修改的变量可以修改p_b 22; } public:int p_a;mutable int p_b;};void test01() { //创建一个常量对象p1会调用默认构造函数const Person p1;//1 常量对象不能修改成员变量的值//p1.p_a 33;//可以修改被mutable修饰的变量值p1.p_b 11;//可以访问成员变量的值std::cout p_a: p1.p_a std::endl;std::cout p_b: p1.p_b std::endl;//2 常量对象访问成员函数只能访问常函数//ShowPerson是非常函数常量对象不能访问//p1.ShowPerson();//访问常函数p1.ShowPerson2();std::cout p_a: p1.p_a p_b: p1.p_b std::endl;}int main() {test01();return 0; }运行结果如下
http://www.sadfv.cn/news/215908/

相关文章:

  • 淮南做网站公司常见软件开发模型
  • 济宁网站建设优化火鸟门户系统优点
  • 国外建站推广石家庄住房和城乡建设厅网站
  • 17一起做网站包包WordPress全站广告
  • 无锡有什么网站用linux系统怎么自己建设网站
  • 几个月网站没有排名交换友情链接推广法
  • 下载的asp网站怎么打开部门网站建设自查报告
  • 购物类网站网站建设与维护的试题卷判断题
  • 网站采用什么方法建设软文广告代理平台
  • 网站建设外包工作凡科快图 免费
  • 贵阳网站建设方案策划青浦php网站开发培训
  • 贵州讯玛网站建设行业门户网站有哪些
  • 移动应用还是网站开发wordpress 到访人数
  • 做外贸网站效果重庆网站建设与推广
  • 网站创建想法网页跳转代码html
  • 书城网站建设项目定义阿里云服务器 个人网站
  • 河北高阳做网站的珠海企业医疗网站建设
  • 企业网站空间备案吗做纸箱在什么网站找客户
  • 厦门网站制作软件在那个网站做推广实用
  • 商业网站建设试题广州网站制作在线
  • 门户 网站 asp精品课网站制作
  • 做网站实现图片自动压缩百度渠道开户哪里找
  • 一般自己怎么做网站西安seo优化排名
  • php网站开发结构说明瓯北网站制作报价
  • 外贸网站代运营html怎么弄
  • 去哪优化网站关键词怎么发布网站
  • 怎么做纪念网站危险网站怎么办
  • 提供邵阳网站建设苏州设计网站建设
  • 国外网站seo购物网站底部设计
  • 龙华做网站的做公司网站客户群体怎么找