std::string& test_str()
{
std::string str="test";
return str;
}
int main()
{
std::string& str_ref=test_str();
std::cout<
return 0;
}
A 編譯警告
B 返回局部變量的引用,運行時(shí)出現未知錯誤
C 正常編譯且運行
D 把代碼里的&都去掉之后,程序可以正常運行
A void sort(class A first,class A last,class B pred)
B void template(class A,class B)sort(A first,A last,B pred)
C template void sort(A first,A last,B pred)
D template void sort(A first,A last,B pred)
4、下面說(shuō)法正確的是
A C++已有的任何運算符都可以重載
B const對象只能調用const類(lèi)型成員函數
C 構造函數和析構函數都可以是虛函數
D 函數重載返回值類(lèi)型必須相同
5、若有下面的函數調用:
? fun(a+b,?3,?max(n-1,?b));?其中實(shí)參的個(gè)數是____。
A 3
B 4
C 5
D 6
void foo() {
if(a <= 0) {
a++;
}
else {
a--;
}
printf("%d", a);
}
A 01
B 10
C 12
D 22
7、在32位操作系統gcc編譯器環(huán)境下,下面程序的運行結果為_(kāi)___。
#include
using namespace std;
class A {
public:
int b;
char c;
virtual void print() {
cout << "this is father’s fuction! " << endl;
}
};
class B: A {
public:
virtual void print() {
cout << "this is children’s fuction! " << endl;
}
};
int main(int argc, char * argv[]) {
cout << sizeof(A) << "" << sizeof(B) << endl;
return 0;
}
A 8 8
B 9 9
C 12 12
D 12 16
8、重載(overload)和重寫(xiě)(override)的區別?
A 重載:是指允許存在多個(gè)同名函數,而這些函數的參數表不同
B 重載:是指子類(lèi)重新定義復類(lèi)虛函數的方法
C 重寫(xiě):是指子類(lèi)重新定義復類(lèi)虛函數的方法
D 重寫(xiě):是指允許存在多個(gè)同名函數,而這些函數的參數表不同