竟无语凝噎 发表于 2018-12-19 16:22:24

静态方法与属性

关于类中
普通方法和静态方法都能访问静态属性,
但是
静态方法不能访问普通属性,而普通方法可以访问普通属性。

可不可以理解为普通方法是静态方法的超集?

如果可以,那么为什么要多一个静态方法,普通方法完全可以完成?

tetrachloroethy 发表于 2018-12-19 17:52:59

静态函数不需要实例化类即可调用,普通函数则不可以,这很有用
另外,你可以了解一下单例模式

Croper 发表于 2018-12-19 18:58:03

楼上说的静态好像是static。。楼主说的好像是const。。
如果楼主问的是const的话。我个人认为主要是为了养成一个好的习惯的问题...和private,public一样,保证不会因为意外修改一些东西。。。
如果非要说实质上的区别

class A
{
private:
        int a;
public:
        const int& value()
        {
                return a;
        }
        const int& constvalue() const
        {
                return a;
        }
};

int main()
{
        const A a;
        int b = a.value();       //这样是无法编译通过的
        int b = a.constvalue();//const对象只能调用const成员函数
}

竟无语凝噎 发表于 2018-12-20 08:51:45

Croper 发表于 2018-12-19 18:58
楼上说的静态好像是static。。楼主说的好像是const。。
如果楼主问的是const的话。我个人认为主要是为了养 ...

谢谢您的回复 ,我说的是static.....,不过还是十分感谢

竟无语凝噎 发表于 2018-12-20 08:52:15

tetrachloroethy 发表于 2018-12-19 17:52
静态函数不需要实例化类即可调用,普通函数则不可以,这很有用
另外,你可以了解一下单例模式

十分感谢您的回复
页: [1]
查看完整版本: 静态方法与属性