首页 > 试题广场 >

以下说法正确的是( )。

[不定项选择题]
以下说法正确的是( )。
  • 内联(inline)函数改善了函数调用的执行效率。
  • 类A的友元(friend)函数可以访问类A的私有成员。
  • 类A的友元(friend)类B可以访问类A的私有成员。
  • 类A的静态数据成员可以被类A的所有对象调用。
  • 类A的静态成员函数没有传递this 指针作为参数。
abcde
静态方法只能用类的 静态成员
发表于 2015-03-04 21:59:07 回复(0)
我认为百科中总结的好。 1. 友元是单向的。 2. 友元就是我把秘密告诉你。 3. 不能被继承和传递。 c是正确的
发表于 2016-06-08 01:07:02 回复(0)
答案:ABCDE
A 是正确的,使用内联是的避免了函数调用的开销,内联是直接在调用出展开的,无序函数调用开销
B 是正确的 友元函数的主要作用就在于此
C 是正确的,此时A可以作为B的成员,或者是通过参数传递给B的成员函数,即可访问A的私有成员
D 是正确的
E 是正确的,静态函数是无法访问类的非静态成员的
编辑于 2016-06-01 21:17:35 回复(1)
D选项连前提都不说,私有静态成员变量的情况下正确?

编辑于 2022-05-26 10:27:52 回复(0)
不恰当的内联函数呢……
发表于 2017-03-10 00:53:14 回复(5)
E: this指针指向当前调用对象,只用于类的非静态成员函数。静态函数和全局函数,无当前对象,无this指针。
发表于 2019-06-19 14:29:43 回复(0)
D为什么是正确的?如果静态数据成员是私有的呢
发表于 2022-01-19 16:50:49 回复(0)
E: this指针指向当前调用对象,只用于类的非静态成员函数。静态函数和全局函数,无当前对象,无this指针。
发表于 2019-08-04 12:25:22 回复(0)
A答案是不准确的   内联函数有些并不会提高效率
发表于 2018-09-18 20:10:13 回复(1)
有关友元函数,静态成员
发表于 2017-07-26 11:10:46 回复(0)
C应该是正确的啊,使用gcc 4.9.1测试是可以的。
```C++
#include <iostream>

using namespace std;

class P {
private:
int test;
friend class FriendP;
public:
P() {};
~P() {};
int getVal() {
return test;
}
virtual void setVal(int val) {
test = val;
}
};

class FriendP {
public:
int test(P& p) {
cout << "friend " << p.test << endl;
}
};

int main() {
P p;
p.setVal(20);
FriendP fp;
fp.test(p);
return 0;
}
```
发表于 2016-06-04 23:19:14 回复(0)
A.定义在类体内的成员函数成为内联函数;调用该函数时,不需要转向去执行函数体,而是用函数体的代码进行替换,这样可以减少开销,提高运行效率。所以A正确。
B.正确,这就是友元函数的目的呢。
C不正确,友元类中的所有成员函数都是另一个类的友元函数,即,类A的友元函数是类B,因此,B的全部友元函数A都可以直接调用;但是不可逆,B没有权力使用A的任何成员函数。
D正确,正是静态数据成员的目的呢。就是为所有对象共享的。即,是属于整个类的。
E,说不好呢
发表于 2015-11-25 10:56:41 回复(0)