0

編集:これは修正されました

文字列データ型の引数を 1 つ持つグローバル関数を作成しようとしています。しかし、私はそれを機能させることができません。ここに私が持っているものがあります:

////////
//Func.h

#include <string>

#ifndef Func_H
#define Func_H

void testFunc(string arg1);

#endif

////////
// Func.cpp

#include <iostream>
#include <string>
#include "Func.h"
using namespace std;

void testFunc(string arg1)
{
    cout << arg1;
}

渡される引数が文字列の場合、これは機能しませんが、引数を整数または文字など (動作するファイルを含める必要がない) にすると、正常に動作します。

基本的に、私がやりたいことは、独自の .cpp ファイルにいくつかの機能を持ち、それらを Main.cpp で使用できるようにすることです。最初のアイデアは、ヘッダー ファイルでプロトタイプ関数を宣言し、そのヘッダー ファイルを Main.cpp に含めて使用することでした。これを行うためのより良い方法を考えられる場合は、お知らせください。私は C++ の経験があまりないので、物事を行うための改善された方法を常に受け​​入れています。

4

1 に答える 1

1

名前空間を忘れました!関数を宣言する関数ヘッダー内

using namespace std;
void testFunc(string arg1);

またはあなたは書くべきです

void testFunc(std::string arg1);

また

void testFunc(std::string &arg1); // pointer to string object

または、関数がオブジェクトを変更しない場合

void testFunc(const std::string &arg1);

また、Func.cppを忘れないでください。関数の実装には、別のファイルから呼び出すために、宣言と同じ引数が必要です。

于 2012-08-10T03:32:46.287 に答える