字符串作为C ++中构造函数的参数

时间:2011-12-17 18:16:07

标签: c++ string parameters constructor

class example {
 private:
    char Name[100];        
 public:

     example(){strcpy(Name, "no_name_yet");}
     example(char n[100]){strcpy(Name, n);}


   };



int main() {
     example ex;
     char n[100];

     cout<<"Give name ";
     cin>>n;
      example();
  }

我想将构造函数与参数一起使用,以便在用户给出名称时将其复制到name变量中。如何将constructoe与参数一起使用而不是默认参数? 我试过了

  example(n)
example(char n)
  example(*n)
   example(n[100])

但它们都不起作用......

2 个答案:

答案 0 :(得分:2)

example my_instance_of_example(n)

但是,我必须注意,对字符串使用char数组不是你在C ++中所做的。您应该使用std::string代替它,它会为您提供更大的灵活性。

答案 1 :(得分:2)

易:

#include <string>
#include <iostream>

class example {
 private:
    std::string name;

 public:
    example() : name("no name yet"){}
    example(std::string const& n) : name(n){}
};


int main() {
     example ex;
     std::string n;

     std::cout << "Give name ";
     std::cin >> n;
     example ex(n); // you have to give your instance a name, "ex" here
                    // and actually pass the contructor parameter
}