首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C++中,类如何在构造函数中获取const std :: string&参数,但也处理NULL?

在C++中,如果要在构造函数中获取const std::string&参数,同时处理NULL,可以通过重载构造函数来实现。具体实现方法如下:

代码语言:cpp
复制
#include<iostream>
#include<string>

class MyClass {
public:
    MyClass() : str_("") {}
    MyClass(const std::string& str) : str_(str) {}
    MyClass(const char* str) : str_(str ? str : "") {}

    void print() const {
        std::cout << "String: "<< str_<< std::endl;
    }

private:
    std::string str_;
};

int main() {
    MyClass obj1;
    obj1.print(); // 输出:String:

    std::string str = "Hello, World!";
    MyClass obj2(str);
    obj2.print(); // 输出:String: Hello, World!

    MyClass obj3(NULL);
    obj3.print(); // 输出:String:

    return 0;
}

在这个例子中,我们定义了一个MyClass类,它有三个构造函数:

  1. 默认构造函数:接受无参数,将str_初始化为空字符串。
  2. 第一个构造函数:接受一个const std::string&类型的参数,将str_初始化为该参数。
  3. 第二个构造函数:接受一个const char*类型的参数,如果该参数不为NULL,则将str_初始化为该参数指向的字符串,否则将str_初始化为空字符串。

main函数中,我们分别创建了三个MyClass对象,分别调用了print函数,输出了对象中的字符串。其中,第一个对象使用了默认构造函数,第二个对象使用了第一个构造函数,第三个对象使用了第二个构造函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券