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

   2024-09-30 2170
核心提示:在C++中,new操作符用于动态分配内存并创建对象。当使用new创建对象时,可以通过构造函数的初始化列表来初始化对象的成员变量。

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

使用初始化列表初始化成员变量:
class MyClass {public:    MyClass(int x, int y) : a(x), b(y) {}private:    int a;    int b;};MyClass* obj = new MyClass(1, 2);
使用初始化列表初始化常量和引用成员:
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);
使用初始化列表初始化基类和成员对象:
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);
使用初始化列表调用默认构造函数:
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); // 调用带参数的构造函数
使用初始化列表初始化类型为类的成员变量:
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);
使用初始化列表初始化类型为容器的成员变量:
#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和初始化列表可以简化对象的创建和初始化过程。初始化列表提供了一种高效、安全的方式来初始化对象的成员变量。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号