可能な限り、コンパイルを高速化するために、includeではなく前方宣言を使用することを理解しています。
私はこのようなクラスを持っていPerson
ます。
#pragma once
#include <string>
class Person
{
public:
Person(std::string name, int age);
std::string GetName(void) const;
int GetAge(void) const;
private:
std::string _name;
int _age;
};
Student
そしてこのようなクラス
#pragma once
#include <string>
class Person;
class Student
{
public:
Student(std::string name, int age, int level = 0);
Student(const Person& person);
std::string GetName(void) const;
int GetAge(void) const;
int GetLevel(void) const;
private:
std::string _name;
int _age;
int _level;
};
Student.hには、変換コンストラクターでclass Person;
使用する前方宣言があります。Person
罰金。しかし、私はコードで#include <string>
使用している間のコンパイルエラーを避けるために行いました。std::string
ここで前方宣言を使用してコンパイルエラーを回避するにはどうすればよいですか?出来ますか?
ありがとう。