技術討論區 > C/C++程式設計討論區

[c++] vector如何在class的建構式設定初值?

(1/1)

吸多點:
各位大大,下面分別2個檔案t001.cpp 是可以執行。
t002.cpp & t002_class.h & t002_class.cpp 卻不行執行,但只是把t001.cpp分開寫在不同file,
這是為何呢?

t001.cpp

--- 代碼: ---//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#include <vector>
#include <tchar.h>
#include <cstdlib>
#include <ctime>
using namespace std ;
//---------------------------------------------------------------------------
class bbc
{
private:
int news;
vector<int> title ;
public:
bbc(void) ;
~bbc(void);
void output(void) ;
};
//---------------------------------------------------------------------------
bbc::bbc(void) : title(news)
{
news = 8 ;
for( int i=0 ; i < news ; ++i )
{
title[i] = i ;
}
}

bbc::~bbc(void)
{
}

void bbc::output(void)
{
news++;
cout << news << "\n";
for( int i=0 ; i < news ; ++i )
{
cout << "title[" << i << "] :" << title[i] << "\n" ;
}
}
//---------------------------------------------------------------------------
void main()
{
bbc today ;
today.output() ;

system("PAUSE");
}

--- 程式碼結尾 ---
t002.cpp

--- 代碼: ---#include <vcl.h>
#include <iostream>
#include <vector>
#include <tchar.h>
#include <cstdlib>
#include <ctime>
using namespace std ;

#include "t002_class.h"


void main()
{
bbc today ;
today.output() ;

system("PAUSE");
}

--- 程式碼結尾 ---

t002_class.h

--- 代碼: ---//---------------------------------------------------------------------------

#ifndef t002_classH
#define t002_classH
//---------------------------------------------------------------------------
#endif


class bbc {
private:
int news;
vector<int> title ;
public:
bbc(void) : title(news) ;

~bbc(void);
void output(void) ;
};

--- 程式碼結尾 ---

t002_class.cpp

--- 代碼: ---//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <vector>
#include <tchar.h>
#include <cstdlib>
#include <ctime>
using namespace std ;
#include "t002_class.h"
//---------------------------------------------------------------------------
bbc::bbc(void) : title(news) {
news = 8 ;
for( int i=0 ; i < news ; ++i ) {
title[i] = i ;
}
}
//---------------------------------------------------------------------------
bbc::~bbc(void)
{

}


//---------------------------------------------------------------------------
void bbc::output(void)
{
news++;
cout << news << "\n";
for( int i=0 ; i < news ; ++i ) {
cout << "title[" << i << "] :" << title[i] << "\n" ;
    }
}
//---------------------------------------------------------------------------

--- 程式碼結尾 ---

吸多點:
這是錯誤訊息

--- 代碼: ---t002_class.h(14,2): error E2275: E2275 { expected

--- 程式碼結尾 ---

Yamaka:

--- 引述: 吸多點 於 2014-03-14 16:42 ---各位大大,下面分別2個檔案t001.cpp 是可以執行。
t002.cpp & t002_class.h & t002_class.cpp 卻不行執行,但只是把t001.cpp分開寫在不同file,
這是為何呢?

t002_class.h

--- 代碼: ---//---------------------------------------------------------------------------

#ifndef t002_classH
#define t002_classH
//---------------------------------------------------------------------------
#endif


class bbc {
private:
int news;
vector<int> title ;
public:
bbc(void) : title(news) ;

~bbc(void);
void output(void) ;
};

--- 程式碼結尾 ---


--- 引用結尾 ---

改這樣


--- 代碼: ---class bbc {
private:
int news;
vector<int> title ;
public:
bbc(void);

~bbc(void);
void output(void) ;
};
--- 程式碼結尾 ---

吸多點:
 :) 是耶
唉 搞了ㄧ天,原來是粗心了
欠缺咖啡因阿..

導覽

[0] 文章列表

前往完整版本