私はC++を初めて使用しますが、基本的な質問があります。それは基本的なものに違いないと思います...:)。
これが私が動作することを期待しているコードですが、動作しません。
char* deneme = Tool::getStringIntoArray("Hello");
クラス'Tool'の静的関数から文字列を渡してchar配列を取得したいと思います。
これが私のツールヘッダーです:
#include <string>
using namespace std;
#ifndef TOOL_H_
#define TOOL_H_
class Tool
{
public:
static char* getStringIntoArray(string);
};
#endif
その関数を使用する唯一のことは、そこに「静的」なキーワードを与えることであることを学びました。
最後に、関数のTool.cpp:
#include "Tool.h"
char* getStringIntoArray(string str)
{
int* size = new int(str.size());
char* array;
array = new char[*size];
for ( int i = 0; i < *size; i++) {
array[i] = str[i];
}
delete size;
return array;
}
それでも、最初に指定したコードが存在するソースファイルでは機能しますが、この関数を静的に使用するためのクラスに入れると、機能しません。エラーを以下に示します。
undefined reference to `Tool::getStringIntoArray(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
どうも。