const修饰函数

#include <iostream>
using namespace std;


class A {
public:
    A(int age);
    void printAge() const; 
    // 这是个常成员函数,绝不可以修改成员变量:age和name
    // 常成员函数只能对成员变量进行读操作
    // 通常把get...()等定义为常成员函数

    void eat();

private:
    int age;
    char name;
};

A::A(int age) {
    this->age = age;
}

void A::printAge() const{
    cout << age << endl;
}

void A::eat() {
    cout << "吃午饭" << endl;
}
// test.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include "A.h"

using namespace std;

void t(int *pp1) {
    int t = 222;
    pp1 = &t;
    cout << "pp1:" << pp1 << endl;
}


int main()
{
    A *a = new A(22);
    const A *p = new A(22);

    p->printAge();
    a->eat();

    system("pause");
    return 0;
}

还需要注意:

1.常对象或常引用或常指针只能调用常成员函数。但是普通对象(无const修饰)都能调用, 即:既能调用常成员函数,也能调用非常的。

2.常成员函数只能调用常成员函数,不能调用非常函数。

 

posted @ 2018-09-17 11:42  Jary霸  阅读(317)  评论(0编辑  收藏  举报