作者 主題: [c++] vector如何在class的建構式設定初值?  (閱讀 1508 次)

0 會員 與 1 訪客 正在閱讀本文。

吸多點

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
各位大大,下面分別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" ;
    }
}
//---------------------------------------------------------------------------

吸多點

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
Re: [c++] vector如何在class的建構式設定初值?
« 回覆 #1 於: 2014-03-14 16:46 »
這是錯誤訊息
代碼: [選擇]
t002_class.h(14,2): error E2275: E2275 { expected

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: [c++] vector如何在class的建構式設定初值?
« 回覆 #2 於: 2014-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) ;
};

吸多點

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
Re: [c++] vector如何在class的建構式設定初值?
« 回覆 #3 於: 2014-03-14 18:15 »
 :) 是耶
唉 搞了ㄧ天,原來是粗心了
欠缺咖啡因阿..