2017-10-18 170 views
1

是否可以使用构造函数的初始化列表初始化矢量成员。下面给出一些不正确的代码。使用构造函数的参数初始化矢量成员

#ifndef _CLASSA_H_ 
#define _CLASSA_H_ 

#include <iostream> 
#include <vector> 
#include <string> 

class CA{ 
public: 
    CA(); 
    ~CA(); 

private: 
    std::vector<int> mCount; 
    std::vector<string> mTitle; 
}; 

构造函数的.cpp文件

// I want to do it this way 
#pragma once 

#include "classa.h" 


// Constructor 
CA::CA(int pCount, std::string pTitle) :mCount(pCount), mTitle(pTitle) 
{ 

} 


// Destructor 
CA::~CA() 
{ 

} 

在主文件

#include "classa.h" 
int main() 
{ 
    CA A1(25, "abcd"); 
    return 0; 
} 

回答

1

如果你想初始化vector成员传递到CA::CA作为元素的参数执行,您可以使用list initialization(自C++ 11以来),其中constructor of std::vector将采用std::initializer_list将用于ini tialization。例如

CA::CA(int pCount, std::string pTitle) :mCount{pCount}, mTitle{pTitle} 
//           ~  ~  ~  ~ 
{ 
    // now mCount contains 1 element with value 25, 
    //  mTitle consains 1 element with value "abcd" 
} 
+0

谢谢@songyuanyao – user18441

相关问题