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

做网站用什么编程域名申请而完成以后怎么做网站

做网站用什么编程,域名申请而完成以后怎么做网站,手机网站趋势,企业网站建设在国内现状文章目录 this指针和静态成员this指针静态成员 this指针和静态成员 this指针 C中类的成员变量和成员函数的存储方式有所不同: 成员变量:对象的成员变量直接作为对象的一部分存储在内存中。成员函数:成员函数(非静态成员函数&am…

文章目录

  • this指针和静态成员
    • this指针
    • 静态成员

this指针和静态成员

this指针

C++中类的成员变量和成员函数的存储方式有所不同:

  • 成员变量:对象的成员变量直接作为对象的一部分存储在内存中。
  • 成员函数:成员函数(非静态成员函数)不直接存储在对象的内存中。它们的代码(即函数体中的指令)存储在代码区中。

当我们创建一个类的多个对象时,这些对象的成员函数的代码是共享的,也就是说,无论我们创建多少个类的对象,这些函数的代码都只有一份。 但是,每个对象都有自己独立的成员变量。为了在这些共享的成员函数内部引用和修改特定对象的成员变量,C++提供了this指针。this指针是一个隐式的指针,它指向调用非静态成员函数的对象。

示例

#include <iostream>  class MyClass {  
private:  int myVar; public:  MyClass(int value) : myVar(value) {}void printMyVar() {  std::cout << "The value of myVar for this object is: " << this->myVar << std::endl;  // this-> 可以不显式声明,编译器会自动为你处理.this->myVar可以改成myVar}  void setMyVar(int newValue) {  this->myVar = newValue; // 使用this指针来引用当前对象的myVar }  
};  int main() {  MyClass obj1(10);MyClass obj2(20);obj1.printMyVar(); // The value of myVar for this object is: 10  obj2.printMyVar(); // The value of myVar for this object is: 20  obj1.setMyVar(30); obj1.printMyVar(); // The value of myVar for this object is: 30  obj2.printMyVar(); // The value of myVar for this object is: 20,第二个对象的myVar保持不变  return 0;  
}

在这个例子中,MyClass类的两个成员函数:printMyVarsetMyVar都通过this指针来引用和修改当前对象的成员变量。

在类的成员函数内部中,通常不需要显式声明this指针,因为编译器会自动处理。然而,在某些情况下,可以显式地使用this指针,例如:

  • 通过this指针区分成员变量和参数。
  • 通过this指针返回调用对象本身,实现链式调用。

示例

#include<iostream>
class MyClass {
private:int x;public:MyClass(int value) : x(value) {}// 使用this指针来区分成员变量和参数void setValue(int x) {this->x = x; }// 使用this指针返回调用对象本身MyClass& increment() {this->x++;return *this; // 返回*this即返回调用对象本身}int getValue() const {return x; }
};int main() {MyClass obj(5);obj.setValue(20);obj.increment().increment(); // 链式调用std::cout << obj.getValue() << std::endl; // 输出22return 0;
}

静态成员

类的非静态成员(包括成员变量和成员函数)是类的每个对象所独有的。每一个类的对象会拥有自己独立的内存空间来存储其非静态成员变量的值,并通过this指针来与非静态成员函数进行关联。每个对象在调用非静态成员函数时,都会通过this指针传递自己的地址给该函数,以便函数能够访问和修改该对象的成员变量。

类的静态成员(包括静态成员变量和静态成员函数)在所有类的对象之间是共享的,只存在于一个数据存储区域。静态成员不与类的任何特定对象相关联。因此,静态成员函数内部没有this指针的概念。

静态数据成员: 在类的所有对象之间共享其值。在C++17之前,静态数据成员只能在类外进行初始化。C++17之后可以使用内联关键字inline 在类内初始化静态数据成员。

类外初始化静态数据成员:

class MyClass {
public:static int count; // 声明静态数据成员MyClass() {count++; }~MyClass() {count--; }
};// 在类外初始化静态数据成员
int MyClass::count = 0;int main() {MyClass obj1; // 构造时,count 增加到 1MyClass obj2; // 构造时,count 增加到 2std::cout << MyClass::count << std::endl; // 输出 2return 0;
}

使用C++17新增的inline 在类内初始化静态数据成员:

#include <iostream>  class MyClass {  
public:  // 使用内联变量语法在类内部声明并初始化静态数据成员inline static int count = 0;MyClass() {  count++;}  ~MyClass() {  count--; }  
};  int main() {  MyClass obj1; // 构造时,count 增加到 1  MyClass obj2; // 构造时,count 增加到 2  std::cout << MyClass::count << std::endl; // 输出 2  return 0;  
}

静态成员函数: 可以通过任何对象的实例或类名来调用,但是不能访问类的非静态成员。

#include <iostream>  
#include <string>  class MyClass {  
private:  int nonStaticVar; // 非静态成员变量  inline  static int staticVar = 42; // 静态成员变量public:  MyClass(int value) : nonStaticVar(value) {}  // 静态成员函数  static void printStaticVar() {  std::cout << "The value of staticVar is: " << staticVar << std::endl;  // 尝试通过静态成员函数访问非静态成员变量会导致编译错误  // std::cout << "The value of staticVar is: " << nonStaticVar << std::endl;  }  // 非静态成员函数  void printVars() {  std::cout << "The value of staticVar is: " << staticVar << std::endl;  std::cout << "The value of nonStaticVar is: " << nonStaticVar << std::endl;  }  
};  int main() {  MyClass obj(10);  // 通过类名调用静态成员函数  MyClass::printStaticVar();   // The value of staticVar is: 42 // 通过对象实例调用静态成员函数obj.printStaticVar();  // The value of staticVar is: 42 // 调用非静态成员函数  obj.printVars();   // The value of staticVar is: 42   //The value of nonStaticVar is: 10return 0;  
}
http://www.yayakq.cn/news/668762/

相关文章:

  • site网站连通率0%怎么解决钢化网
  • 最全的提交网站入口大全wordpress qq留言
  • 外贸网站定制wordpress建站网
  • php开发大型网站开发天津住房与城乡建设厅网站首页
  • 网站策划书一般包括以下内容河北省招标投标公共服务平台
  • 哪些网站做的美剧广东建设职业注册中心网站
  • 国内网站做得好的公司上海工程相关的公司
  • dede笑话网站源码职业生涯规划大赛ppt
  • 网站网页制作模板修改wordpress插件怎么用
  • 网站设计规范西安比较厉害的软件公司
  • 英文 网站 字体云服务器租赁
  • 电子商务网站建设是学什么软件推广价格一般多少
  • 网站建设 类郑州厉害的seo优化顾问
  • 公司内部网站创建企业网站托管一年多少钱
  • 网站建设及维护保密协议金色世纪做网站的是哪个岗位
  • 网站怎么做超链接me域名网站
  • 梁山做网站宝安营销型网站制作
  • php5 mysql网站开发基础与应用大数据技术与应用
  • 网站子站怎么建设什么是二级域名网站
  • vi设计欣赏网站免费网站设计素材
  • 淄博便宜网站设wordpress 嵌入 php代码
  • 网站建设教程asp网站建设需要那种技术
  • 网站设计 psd软件开发流程流程图
  • 江西省飞宏建设工程有限公司 网站网页微信扫码登录
  • 网站优化步骤自考本科含金量高吗
  • 个人如何做网站建设信息港查询
  • 政务公开 加强门户网站建设旅游网站设计模板图片
  • 设计一个企业网站报价网站建设公司哪家强
  • 网站如何建设二级域名代理wordpress p=
  • 临沂做网站的公司有哪些红谷滩园林建设集团网站