0

私の c++ 割り当てでは、「char」を作成して出力し、参照引数として関数に渡し、変更し、再出力して、変更されたことを証明するだけです。簡単そうに見えますが、おそらく本当にばかげた間違いを犯しているのでしょうが、「未解決の外部」というエラーが表示され続けます。.cpp ファイルを作成し、ヘッダー ファイルでクラスを宣言しました。

私の .cpp ファイル:

#include <iostream>
#include <fstream>
#include "referenceshw.h"

using namespace std;

int main(){

    char s = 's';
    char& s1 = s;
    Ref test;

    std::cout << s <<endl;
    test.modify(s);

}

void modify(char& s1){

    s1 = 'd';
    std::cout << s1 <<endl;
    std::cout << s <<endl;

}

私のヘッダーファイル:

#ifndef _REFERENCESHW_H
#define _REFERENCESHW_H

class Ref{

    public:
        char s;

void modify (char);

};

#endif
4

2 に答える 2

2

関数のシグネチャが一致しません。.h には次のものがあります。

void modify (char);

そして.cppで

void modify(char& s1){

.h の char の後に & を追加するだけです。

また、関数はクラス宣言の外で定義されているため、.cpp の変更の前に Ref:: を追加する必要があります。最後に、.cpp では次のようになります。

void Ref::modify(char& s1){

そしてあなたの.hで

void modify(char&);
于 2013-07-23T22:42:40.550 に答える
0

ボーグリーダーは正しい。その他のバグ: 変更

void modify(char& s1)

void Ref::modify(char& s1);

また、modify() 内のコードでクラス メンバー s1 を参照しようとしていますか?

s1 = 'd'; // this will change the parameter that was passed in, 
          // is that what you want?
于 2013-07-23T22:55:11.660 に答える