方法实现方式:类内定义/类外定义
类内定义/类外定义: 指的是函数体实现的位置
类内实现
相当于隐式的内联函数,虽然前面没写
std::string getName();
int getAge();
但是编译的时候,编译器会自动帮你加。
#include <iostream>
class Girl{
public:
Girl(std::string name, int age){
this->name = name;
this->age = age;
};
std::string getName(){
return name;
}
int getAge(){
return age;
}
private:
std::string name;
int age;
};
int main(int argc, char const *argv[])
{
Girl girl("Scott",18);
std::cout<<girl.getName()<<std::endl;
std::cout<<girl.getAge()<<std::endl;
return 0;
}
/*
Scott
18
*/
类外实现
#include <iostream>
class Girl{
public:
Girl(std::string name, int age){
this->name = name;
this->age = age;
};
std::string getName();
int getAge();
private:
std::string name;
int age;
};
int main(int argc, char const *argv[])
{
Girl girl("Scott",18);
std::cout<<girl.getName()<<std::endl;
std::cout<<girl.getAge()<<std::endl;
return 0;
}
std::string Girl::getName(){
return name;
}
int Girl::getAge(){
return age;
}
/*
Scott
18
*/
类外实现
girl.hpp
#include <iostream>
class Girl{
public:
Girl(std::string name, int age){
this->name = name;
this->age = age;
};
std::string getName();
int getAge();
private:
std::string name;
int age;
};
gril.cpp
#include "girl.hpp"
std::string Girl::getName(){
return name;
}
int Girl::getAge(){
return age;
}
main.cpp
#include "girl.hpp"
using namespace std;
int main(int argc, char const *argv[])
{
Girl girl("Lucy",18);
cout<<girl.getName()<<endl;
cout<<girl.getAge()<<endl;
return 0;
}
/*
Lucy
18
*/
注意:非XCODE的情况下,要这样编译
g++ main.cpp gril.cpp
实际项目中,建议使用类外方式:首先利于团队合作,直接给个头文件,方便协同开发,也利于把自己的库分享给别人用(丢给对方一个头文件即可)