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

C++学习, 类的构造函数

C++类构造函数是类的特殊的成员函数,它在创建对象时自动调用,用于初始化对象。构造函数的名称与类的名称是完全相同的,不会返回任何类型,也不会返回 void。构造函数的主要目的是给对象的数据成员赋初值。

 

构造函数的特点

  1. 构造函数名与类名相同
  2. 无返回类型
  3. 可以重载:一个类可以有多个构造函数,只要它们的参数列表不同。
  4. 自动调用:当创建类的对象时,会自动调用构造函数。
  5. 默认构造函数:如果没有为类定义任何构造函数,编译器会自动生成一个默认构造函数,该构造函数不接受任何参数且不做任何操作。一旦定义了构造函数,编译器就不会再自动生成默认构造函数。

无参数构造函数,示例:

#include <iostream>  
using namespace std;  
  
class MyClass {  
private:  
    int x; 
  
public:  
    // 无参数构造函数  
    MyClass() : x(0) {
       cout << "Object is being created" << endl;
    }  
  
    void display() const {  
        cout << "x = " << x << endl;  
    }  
};  
  
int main() {  

    MyClass obj;  
  
    // 调用display成员函数来显示x的值  
    obj.display();
  
    return 0;  
}

带参数的构造函数,示例:
#include <iostream> 
using namespace std;
 
class Line
{
   public:
      void setLength( double len );
      double getLength( void );
      Line(double len);  // 构造函数
 
   private:
      double length;
};
 
// 构造函数
Line::Line( double len)
{
    cout << "Object is being created, length = " << len << endl;
    length = len;
}
 
void Line::setLength( double len )
{
    length = len;
}
 
double Line::getLength( void )
{
    return length;
}

int main( )
{
   Line line(8.0);

   cout << "Length of line : " << line.getLength() <<endl;
   line.setLength(18.0); 
   cout << "Length of line : " << line.getLength() <<endl;
 
   return 0;
}

 


http://www.mrgr.cn/news/21300.html

相关文章:

  • 【数据结构】你真的学会了二叉树了吗,来做一做二叉树的算法题及选择题
  • C++11 异常
  • VB 关键字
  • 2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略(详细思路+matlab代码+python代码+论文范例)
  • 【Linux修行路】线程同步——条件变量
  • 【抽代复习笔记】27-群(二十一):子群与生成子群
  • 图像处理基础篇-镜像仿射透视
  • C++学习,类的析构函数
  • 我的私人助理 | 办公小浣熊
  • 第二十一章 rust与动静态库的结合使用
  • 搭建自己的Discuz论坛
  • Docker 部署 Minio (图文并茂超详细)
  • 黑神话:游戏的诞生
  • C++开发基础之自定义异步日志库实现及性能测试
  • Linux block_device gendisk和hd_struct到底是个啥关系
  • 【docker】基于docker-compose 安装elasticsearch + kibana + ik分词器(8.10.4版本)
  • 基于yolov8的焊缝质量好坏系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • jmeter之循环控制器使用
  • 项目管理的完美看板:TaskCafe
  • golang学习笔记08——如何调用阿里oss sdk实现访问对象存储?