1

1時間以上見回しましたが、自分の状況に役立つものは何も見つかりません. 私は C++ の初心者で、コードを 2 つの .cpp ファイルと 1 つの .h ファイルに分割するのはこれが初めての試みです。私はまだ成功に遭遇していません。これが私のコードです:

#include "stdafx.h"
#include <iostream>
#include "Cat.h"
using namespace std;
int main()
{
   Cat Frisky; // declare variable of type Cat, creates an object
   Frisky.SetAge( 5 ); // put value INTO object
   Frisky.Meow( ); // make object do something
   std::cout << "Frisky is a cat who is " ;
   std::cout << Frisky.GetAge() << " years old.\n " ;
   Frisky.Meow( ); // make object do something
   return 0;
}

// This is my cat.h
class Cat {

public:
   int GetAge();                        // accessor
   void SetAge( int age ); // accessor
   void Meow();         // general function

private:
   int itsAge;     // member variable

};

#include "Cat.h"
int Cat::GetAge( )
{
   return itsAge;

} // end function GetAge

// set function, PUT VALUE IN to the object
void Cat::SetAge( int age )
{
   itsAge = age ;

} // end function SetAge

// What do Cats do?

// What action should a Cat object perform?
void Cat::Meow( )
{
   std::cout << "Meow.\n";

} // end function Meow

ここに、1 時間以上にわたって発生しているエラー メッセージを示します。

1>------ Build started: Project: TestCat, Configuration: Debug Win32 ------
1>  TestCat.cpp
1>TestCat.obj : error LNK2019: unresolved external symbol "public: int __thiscall Cat::GetAge(void)" (?GetAge@Cat@@QAEHXZ) referenced in function _main
1>TestCat.obj : error LNK2019: unresolved external symbol "public: void __thiscall Cat::Meow(void)" (?Meow@Cat@@QAEXXZ) referenced in function _main
1>TestCat.obj : error LNK2019: unresolved external symbol "public: void __thiscall Cat::SetAge(int)" (?SetAge@Cat@@QAEXH@Z) referenced in function _main
1>C:\Documents and Settings\Geena\Desktop\TestCat\Debug\TestCat.exe : fatal error LNK1120: 3 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Cat.cpp ファイルと Cat.h ファイルを次のディレクトリに配置しました: C:\Documents and Settings\Geena\Desktop\TestCat\TestCat

このいまいましいプログラムをすでに稼働させるための答えを探しているだけです。

ありがとうございました

4

1 に答える 1

1

次の質問の前に、このチュートリアルを終了することを強くお勧めします

cat.h

class Cat {
public:
    int GetAge();                      
    void SetAge( int age ); 
    void Meow(); 
private:
    int itsAge;  
};

cat.cpp

#include "cat.h"
#include <iostream>

using namespace std;

int Cat::GetAge(){return itsAge;}
void Cat::SetAge(int age){itsAge = age ;}
void Cat::Meow(){cout << "Meow.\n";} 

main.cpp

#include "cat.h"
#include <iostream>

using namespace std;

int main()
{
   Cat Frisky; 
   Frisky.SetAge(5);
   Frisky.Meow(); 
   cout << "Frisky is a cat who is " ;
   cout << Frisky.GetAge() << " years old.\n " ;
   Frisky.Meow( );
   system("pause");
   return 0;
}
于 2013-02-21T09:51:12.537 に答える