C++中new()的初始化列表使用技巧

avatar
作者
猴君
阅读量:0

在C++中,new操作符用于动态分配内存并创建对象。当使用new创建对象时,可以通过构造函数的初始化列表来初始化对象的成员变量。以下是一些关于如何在C++中使用new和初始化列表的技巧:

  1. 使用初始化列表初始化成员变量:
class MyClass { public:     MyClass(int x, int y) : a(x), b(y) {} private:     int a;     int b; };  MyClass* obj = new MyClass(1, 2); 
  1. 使用初始化列表初始化常量和引用成员:
class MyClass { public:     MyClass(int x, int y) : a(x), b(y) {} private:     const int a;     int& b; };  int value = 2; MyClass* obj = new MyClass(1, value); 
  1. 使用初始化列表初始化基类和成员对象:
class Base { public:     Base(int x) : a(x) {} protected:     int a; };  class Derived : public Base { public:     Derived(int x, int y) : Base(x), b(y) {} private:     int b; };  Derived* obj = new Derived(1, 2); 
  1. 使用初始化列表调用默认构造函数:
class MyClass { public:     MyClass() : a(0), b(0) {}     MyClass(int x, int y) : a(x), b(y) {} private:     int a;     int b; };  MyClass* obj1 = new MyClass(); // 调用默认构造函数 MyClass* obj2 = new MyClass(1, 2); // 调用带参数的构造函数 
  1. 使用初始化列表初始化类型为类的成员变量:
class InnerClass { public:     InnerClass(int x) : a(x) {} private:     int a; };  class OuterClass { public:     OuterClass(int x, int y) : inner(x), b(y) {} private:     InnerClass inner;     int b; };  OuterClass* obj = new OuterClass(1, 2); 
  1. 使用初始化列表初始化类型为容器的成员变量:
#include<vector>  class MyClass { public:     MyClass(int x, int y) : vec({x, y}) {} private:     std::vector<int> vec; };  MyClass* obj = new MyClass(1, 2); 

总之,在C++中使用new和初始化列表可以简化对象的创建和初始化过程。初始化列表提供了一种高效、安全的方式来初始化对象的成员变量。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!