【C++】类和对象(四)

慈云数据 2024-03-15 技术支持 51 0

前言:在类和对象中,我们走过了十分漫长的道路,今天我们将进一步学习类和对象,类和对象这块荆棘地很长,各位一起加油呀。

💖 博主CSDN主页:卫卫卫的个人主页 💞

👉 专栏分类:高质量C++学习 👈

💯代码仓库:卫卫周大胖的学习日记💫

💪关注博主和博主一起学习!一起努力!

在这里插入图片描述


目录标题

  • 类和对象
    • const修饰成员函数
    • 再谈构造函数之函数体赋值
    • explict关键字
    • static成员

      类和对象

      const修饰成员函数

      在C++中,可以使用const关键字来修饰成员函数。const修饰符可以被应用于类的成员函数,这表示该函数不会修改任何类的成员变量。

      当一个成员函数被const修饰时,它被称为常量成员函数。常量成员函数承诺不会修改任何成员变量。常量成员函数的定义和声明都必须包含const关键字。

      语法格式:

      返回类型 类名::函数名()const
      {
      	//函数体
      	...
      	...
      }
      

      下面是一个示例:

      class MyClass 
      {
      public:
          void nonConstFunction(int year,int month ,int day); 
          // 非常量成员函数             
          void nonConstFunction() const;  // 常量成员函数
      private:
          int _day;
          int _month;
          int _year;
      };
      void MyClass::nonConstFunction(int year = 1,int month = 1 ,int day =1) 
      {
          // 对成员变量进行修改
          _year = year;
          _month = month;
          _day = day;
      }
      void MyClass::nonConstFunction() const 
      {
          // 不对成员变量进行修改
          cout 
      public:
          Date(int year, int month, int day)
          {
              _year = year;
              _month = month;
              _day = day;
          }
      private:
          int _year;
          int _month;
          int _day;
      };
      
      public:
      	A(int a)
      		:_a(a)
      	{
      		cout 
      public:
      	d(int a, int b, int c)
      		:_aa(a),
      		_b(b),
      		_c(c)
      	{
      		cout 
      	d d1(10, 20, 30);
      	return 0;
      }
      
      private:
          int value;
      public:
          explicit Number(int value) : value(value) {}
       
          int getValue() const {
              return value;
          }
      };
      void printNumber(const Number& number) {
          std::cout 
          int intValue = 10;
          // 隐式类型转换不被允许
          // Number number = intValue;
          // 显式类型转换
          Number number = Number(intValue);
          printNumber(number);
          return 0;
      }
      
      public:
      	static int staticData; // 声明静态数据成员
      	int unstaticData = 10; //声明并初始化非静态成员
      };
      int MyClass::staticData = 0; // 初始化静态数据成员
      int main() 
      {
      	MyClass obj1;
      	MyClass obj2;
      	obj1.staticData = 5;
      	cout 
      public:
          static void StaticFunction()//静态成员函数 
          {
              cout 
              cout 
          MyClass d1;
          MyClass::StaticFunction(); // 输出: Static Function
          d1.UnstaticFunction();  //输出: UnStatic Function
          return 0;
      }
      
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon