酷!學園

技術討論區 => 程式討論版 => C/C++程式設計討論區 => 主題作者是: 吸多點 於 2014-03-14 16:42

主題: [c++] vector如何在class的建構式設定初值?
作者: 吸多點2014-03-14 16:42
各位大大,下面分別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" ;
    }
}
//---------------------------------------------------------------------------
主題: Re: [c++] vector如何在class的建構式設定初值?
作者: 吸多點2014-03-14 16:46
這是錯誤訊息
代碼: [選擇]
t002_class.h(14,2): error E2275: E2275 { expected
主題: Re: [c++] vector如何在class的建構式設定初值?
作者: Yamaka2014-03-14 17:30
各位大大,下面分別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) ;
};
主題: Re: [c++] vector如何在class的建構式設定初值?
作者: 吸多點2014-03-14 18:15
 :) 是耶
唉 搞了ㄧ天,原來是粗心了
欠缺咖啡因阿..