職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

標準テンプレートのvectorを使ってLNK1104が出たら

2016年06月30日 | C++
vectorを使ってLNK1104が出たら


【条件】
OS:window10
EID:VS2013のC++


【プログラム】
#include <vector>
#include <iostream>
using namespace std;

int main()
{
vector<int> array; // int型の動的配列
int i;

// 10個の要素を追加していく
for( i = 0; i < 10; ++i )
{
array.push_back( i );
}

// 10個の要素を出力
for( i = 0; i < 10; ++i )
{
cout << array[i] << endl;
}

return 0;
}
上記のプログラムをビルドして「fatal error LNK1104」エラーが出たら、
vector<int> array; // int型の動的配列
array.reserve(1000);// ここで 1000個分の領域を確保←これを加えてみる。
int i;
これでも、だめだったらVS2013を再インストしてください。

【OSを変えた時】
Win7→Win10に変えた時にも、LNK1104エラーが出て、実行ファイル(.exe)が開けなく成るよ。
その時は、再インストールした方が良いよ。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

構造体のファル分割

2016年05月30日 | C++
構造体のファル分割


【環境条件】
OS:WIN10
Visual Studio 2013

【ファイル】
ヘッダファイル
←------Header.h-------------------→
#include <iostream>
using namespace std;


//関数
extern void show(Car c);→関数本体は別ファイルでも良い

//構造体の宣言
extern struct Car;

//構造体の本体→ヘッダに書く
struct Car
{
int num;
double gas;
};

関数ファイル
←------sub.cpp-------------------→
#include "Header.h"


//show関数
void show(Car c)
{
cout << "車のナンバーは" << c.num << "ガソリン量は" << c.gas << endl;
}

メインファイル
←------sample4.cpp-------------------→
#include "Header.h"

int main()
{
Car car1 = { 0, 0.0 };

cout << "ナンバーを入力してください" << endl;
cin >> car1.num;

cout << "ガソリン量を入力してください" << endl;
cin >> car1.gas;

show(car1);

return 0;


}
結果
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

仮関数を定義する

2015年07月22日 | C++
仮関数


基本クラスのポインタを使って派生クラスのオブジェクト呼び出すには?
【プログラム】
#include <iostream>
using namespace std;
//Carクラスの宣言
class Car{
//派生クラスからアクセス出来るようにする
protected:
int num;
double gas;
public:
Car();
void setCar(int n,double g);
//仮関数宣言する
virtual void show();←オーバライド
};
//RacingCarクラスの宣言/派生クラス

class RacingCar : public Car
{
//派生クラスからアクセス出来るようにする
private:
int course;
public:
RacingCar();
void setCourse(int c);
void show();←オーバライド
};
//Carクラスメンバ関数の定義
Car::Car()
{
num = 0;
gas = 0.0;
cout << "車を作成しました。n";
}

void Car::setCar(int n,double g)
{
num = n;
gas = g;
cout<<"ナンバーを"<<num<<"にガソリン量を"<<gas<<
"にしました。n";
}
void Car::show()
{
cout<<"車のナンバーは"<<num<<"です。n";
cout<<"ガソリン量は"<<gas<<"です。n";
}
//RacingCarクラスメンバ関数の定義
RacingCar::RacingCar()
{
course = 0;
cout<<"レーシングカーを作成しました。n";
}
void RacingCar::setCourse(int c)
{
course = c;
cout<<"コース番号を"<<course<<"にしました。n";
}
void RacingCar::show()
{
cout<<"レーシングカーのナンバーは"<<num<<"です。n";
cout<<"ガソリン量は"<<gas<<"です。n";
cout<<"コース番号は"<<course<<"です。n";
}
int main()
{
Car* pcars[2];

Car car1;
RacingCar rccar1;

pcars[0] = &car1;
pcars[0]->setCar(1234,20.5);

pcars[1] = &rccar1;
pcars[1]->setCar(4567,30.5);

for(int i=0;i<2;i++){
pcars[i]->show();
}


return 0;
}
■結果表示
車を作成しました。
車を作成しました。
レーシングカーを作成しました。
ナンバーを1234にガソリン量を20.5にしました。
ナンバーを4567にガソリン量を30.5にしました。
車のナンバーは1234です。
ガソリン量は20.5です。
レーシングカーのナンバーは4567です。
ガソリン量は30.5です。
コース番号は0です。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

クラスに於けるアクセス権

2015年07月19日 | C++
クラスに於けるアクセス権


例題クラス
class Car{
 private:→外部からアクセス出来ない
int num;
double gas;
pubric:
void show();
void setnumgas(int n,double g);
};
クラス関数定義
void Car::show()
{
cout<<"車のナンバーは"< cout<<"ガソリン量は"< }
void Car::setnumgas(int n,double g)
{
num = n;
gas = g;
}
メイン関数
int main()
{
Car car1;
//不可能
car1.num;
car1.gas:
  //可能
  car1.setnumgas(1234,20.3);
car.show()
}
次にクラスのフィールドをprotectedにすると
class Car{
 protected:
int num;
double gas;
pubric:
void show();
void setnumgas(int n,double g);
};
//クラス関数定義
 同じ
//派生クラスRacingCarの宣言
class RacingCar:public Car{
private:
int course;
public:
RacingCar();
void setCours(ins c);
void newShow();
};
// 派生クラスRacingCarのメンバ関数定義
・・・・・
void RacingCar::newShow()
{
cout<<"レーシングカーのナンバーは"< }
メイン関数
int main()
{
RacingCar c;
c.newShow()
c.show()
}


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

インライン関数

2015年07月11日 | C++
インライン関数



関数を1つ呼び出すだけの関数。ある変数に値を代入するだけの関数。何度も呼ばれる関数の場合、時間短縮する為に使われる。

インライン関数の定義
inline 戻り値の型 関数名(引数リスト){・・・}
inline void DispErrorMsg()
{
cout << "Error!" << endl;
}

クラスメンバ関数をインライン関数にするには
クラス宣言内に関数本体を定義すると、自動的にインラインに成る
#include
using namespace std;

//Carクラスの宣言
class Car{
private:
int num;
double gas;
public:
//インライン関数
int getNum(){return num;}
double getGas(){return gas;}
     //メソッド
void show();
void setNumGas(int n,double g);
};

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする