2016-11-04 9 views
-8

Почему я не могу поставить определение конструктора классов с параметрами-инициализировать список вне объявления класса?C++ Почему я не могу поставить определение конструктора классов с параметрами-инициализировать список вне объявления класса

typedef unsigned int UINT; 

class num_sequence { 
public: 
    typedef vector<UINT>::iterator iterator; 

    //I cannot put this following part in the cpp file 
    num_sequence(vector<UINT> & ele,int len=0,int beg=0):_relems(ele),_length(len),_beg_pos(beg) 
    { 
     //an abstract class cannot be instanlized 
     cout<<"build a num_sequence object"; 
    }  
    virtual ~num_sequence(); 
+0

num_sequence :: num_sequence (вектор & Эле, внутр Len = 0, Int бек = 0): _ relems (Ele), _ length (len), _ beg_pos (beg) \t \t { \t \t \t // абстрактный класс не может быть инсталлировано \t \t \t cout << "создать объект num_sequence"; } –

+0

Я могу реализовать конструктор внутри области объявления класса, но возникают ошибки за пределами –

+3

Вы можете поместить его на улицу. Если у вас возникли проблемы, отправьте фактический код, который вы попробовали, который не работает. –

ответ

1

num_sequence.h

#include <vector> 

typedef unsigned int UINT; 

class num_sequence 
{ 
public: 
    typedef std::vector<UINT>::iterator iterator; 

    num_sequence(std::vector<UINT> & ele, int len = 0, int beg = 0); 
    virtual ~num_sequence(); 

private: 
    std::vector<UINT> &_relems; 
    int _length; 
    int _beg_pos; 
}; 

num_sequence.cpp

#include "num_sequence.h" 
#include <iostream> 

num_sequence::num_sequence(std::vector<UINT> & ele, int len, int beg) 
    : _relems(ele), _length(len), _beg_pos(beg) 
{ 
    std::cout << "build a num_sequence object"; 
}  

num_sequence::~num_sequence() 
{ 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^