-2

私はC++を知っているので、誰かがこれらのTorFの質問を手伝ってくれるなら、それは素晴らしいことです。

正誤問題: C ++を使用すると、クラスのコピーコンストラクターは、値を関数入力に渡す場合にのみ使用されます。

正誤問題:次のC++関数madeA()は有効な関数実装です。

ClassA{
public:
    int x;
    char *y;
};
void madeA(const A &t_a){
    t_a.x = 1;
    t_a.y = 0;
}

正誤問題:次のC++コードセグメントは同等である。

void cmax(int a, int b, int *max){
    if(a>b) *ax = a;
    *max = b;
}

using namespace std;

void main(){
    int *max = new int;
    cmax(20, 5, max);
    cout<< *ax << endl;
}

次のコード:

void cmax(int a, int b, int &max){
    if(a>b) max = a;
    max = b;
}

void(){
    int max;
    cmax(20, 5, ax);
    std::cout <<max<<std::endl;
 }
4

1 に答える 1

1

最初:False
コピーコンストラクタは、コピーが必要なときにいつでも呼び出される可能性があります。
簡単な例:値で返す

2番目:False。引数
への参照の内容を変更しています。constコンパイルしないでください。ポインタハッカリーを使用しても、未定義動作が発生します。

3番目:False
最初にメモリリークが発生し、2番目にメモリリークが発生しません。
2番目のコードスニペットはコンパイルすらしません。

于 2012-12-11T04:20:22.757 に答える