开发手册 欢迎您!
软件开发者资料库

C++ 类成员函数(方法)

类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。本文主要介绍C++ 类成员函数。

1、成员函数(方法)声明

成员函数可以定义在类定义内部,或者单独使用范围解析运算符 :: 来定义。在类定义中定义的成员函数把函数声明为内联的,即便没有使用 inline 标识符。

例如,

#include using namespace std;#include class Foo {public:    std::string s;    // 默认构造函数    Foo() { std::cout << "default constructor" << std::endl; }    // 复制构造函数    Foo(const Foo& foo) { std::cout << "copy constructor" << std::endl; s = foo.s; }    // 复制赋值运算符    Foo& operator=(const Foo& foo) { std::cout << "copy assignment operator" << std::endl; s = foo.s; return * this;}    // 移动构造函数    Foo(Foo&& foo) { std::cout << "move constructor" << std::endl; s = std::move(foo.s); }    // 移动赋值运算符    Foo& operator=(Foo&& foo) { std::cout << "move assignment operator" << std::endl; s = std::move(foo.s); return *this;}};int main() {    Foo foo1;    Foo foo2(foo1);    foo1 = foo2;    Foo foo3(std::move(foo1));    foo2 = std::move(foo3);}

2、使用范围解析运算符(::)

可以在类的外部使用范围解析运算符 :: 定义函数。

例如,

#include #includeusing namespace std;class Person{    string name;    int age;    char sex;// 成员函数声明public:    void Register(string,int,char);    void ShowMe();    void Input();    string ID;};// 成员函数定义void Person::Register(string na,int ag,char se){    name=na;    age=ag;    sex=se;}void Person::ShowMe(){    cout<>name>>age>>sex; } int main(){    Person person1,person2;    person1.Input();    person2.Register("wonhero",19,'m');    person1.ShowMe();    person2.ShowMe();    return 0;}