c ++ статическая функция не найдена - PullRequest
1 голос
/ 24 июня 2010

У меня есть это определение функции в моем классе.

Файл .hpp:

class SomeClass
{
public:

static string DoStuff(string s);

};

Файл .cpp:

#include "header.hpp"

string SomeClass::DoStuff(string s)
{
// do something
}

Компилятор говорит:

**error C2039: 'DoStuff' : is not a member of 'SomeClass'**

Может кто-нибудь помочь?

EDIT: фактический код нарушения

определение заголовка

  class DDateTime{  
public:
static string date2OracleDate(DATE Date);
}


string DDateTime::date2OracleDate(DATE Date)
{
    string s;
    s="TO_DATE('" + DDateTime::DateFormat("%d/%m/%Y",Date) + "','dd/MM/YYYY')";
    return s;
}

Ответы [ 5 ]

1 голос
/ 24 июня 2010

Обычно .cpp файлы должны включать в себя соответствующий .h или .hpp файл.

Это так?

У вас также может возникнуть проблема с пространством имен (отсутствует пространство имен в.cpp определение файла или статического метода вне пространства имен и т. Д.).

На самом деле трудно ответить, пока мы не получим реальный код взлома.


Более тогоЯ не знаю, является ли это примером кода, но кажется, что вы использовали что-то вроде using std::string или using namespace std в своем заголовочном файле.

Это плохая идея, потому что это будет polute каждый файл, в которомВаш заголовок включен.Что если кто-то хочет использовать ваш заголовочный файл, но не хочет «использовать» std, потому что string является именем одного из его классов?

0 голосов
/ 09 ноября 2012

Вы пытаетесь вызвать DoStuff из двойного указателя на ваш экземпляр? Пример:

SomeClass ** class; class-> DoStuff ();

Если это так, сделайте это:

SomeClass ** class; (* Класс) -> DoStuf ();

0 голосов
/ 24 июня 2010

Ты скучаешь

#include<string>

в вашем заголовочном файле?

0 голосов
/ 24 июня 2010

Может быть проблема с пространством имен?У вас может быть SomeNamespace :: SomeClass со статической функцией-членом и :: SomeClass во внешнем пространстве имен без статической функции-члена.

0 голосов
/ 24 июня 2010

Включили ли вы файл заголовка в ваш файл cpp?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...