c++“友元函数”、“常成员函数”、“派生类、基类”的常见问题请教?

1.派生类和基类之间的成员函数可以相互调用!
不同类之间的成员函数怎么调用?派生类怎么调用基类的成员变量?
是通过定义为友元函数来调用基类的成员变量吗?

2.友元函数
普通函数声明为友元函数,可以访问类的成员函数
友元类可以访问其他类的成员变量

3.常成员函数可以引用成员变量,不同类的成员变量也可以引用吗?
常成员函数和友元函数的区别?

4.静态成员变量,不可以修改它的值
通过对象和类名就可以调用
类名不可以直接调用成员函数!
把成员函数申明为静态函数,类名就可以调用成员函数!

其他类可以访问这个类的.静态成员变量吗?

5.虚函数
把父类成员函数定义为虚函数
通过指针去调用派生类的成员函数

6.复制构造函数
把对象进行传递
A.a1(100)
A.a2=a1
基本这些就是学习c++函数常遇到的问题和疑问,在这里请教大家了!

第1个回答  推荐于2016-09-25

    派生类和基类之间的成员函数可以相互调用!
    不同类之间的成员函数怎么调用?

    ::只有public的成员函数可以互相调用,非静态函数一律生成实例后方可

    派生类怎么调用基类的成员变量?


    是通过定义为友元函数来调用基类的成员变量吗?

    ::如果是public或protected可以直接使用,private可以通过友元方式(强烈建议不要这样做)


    2.友元函数
    普通函数声明为友元函数,可以访问类的成员函数
    友元类可以访问其他类的成员变量

    3.常成员函数可以引用成员变量,不同类的成员变量也可以引用吗?

    ::首先,常成员函数也是成员函数,和一般的成员函数唯一的区别是不能修改类的属性


    常成员函数和友元函数的区别?
    ::完全不同,常成员函数参考前面的解释;友元函数是个异类:纯粹是为了向其他的指定类开放某些功能而存在的;


    4.静态成员变量,不可以修改它的值
    通过对象和类名就可以调用
    类名不可以直接调用成员函数!
    把成员函数申明为静态函数,类名就可以调用成员函数!

    其他类可以访问这个类的.静态成员变量吗?
    ::声明为public的可以直接访问,其他的可以通过友元方式(强烈建议不要这样做)


    5.虚函数
    把父类成员函数定义为虚函数
    通过指针去调用派生类的成员函数

    6.复制构造函数
    把对象进行传递
    A.a1(100)
    A.a2=a1
    基本这些就是学习c++函数常遇到的问题和疑问,在这里请教大家了! 

     

追问

声明为public的变量,不管是不是静态成员变量,其他类都可以访问,是这样吗?

追答

没错。区别仅在于static的生命周期是全局的,非static的需要生成实例才可以使用

本回答被提问者和网友采纳
相似回答