2012-05-26 1 views
0

Как использовать массив символьных массивов, когда мои настройки выглядит следующим образом:Как использовать массив массивов символов, определенных в классе def в классе класса в C++?

В classes.h

namespace foomaker 
    { 
     class foo 
     { 
      const char **mystringarray; 

      bool ipitythefoo(); 

     }; 
    } 

В foo.cpp #include classes.h

namespace foomaker 
    { 

     bool foo::ipitythefoo() 
     { 
      *mystringarray[] = {"Mr. T","Gold Chains","Mohawks"}; 

      return false; 
     }; 
    } 

Ошибка компилятора:

1>.\foofactory.cpp(5) : error C2059: syntax error : ']' 
    1>.\foofactory.cpp(5) : error C2143: syntax error : missing ';' before '{' 
    1>.\foofactory.cpp(5) : error C2143: syntax error : missing ';' before '}' 

Или это thi возможно?

Невозможно использовать строки, карты или векторы для этого.

Конечным результатом является то, что это будет для строк ошибок, которые мне нужно получить по номеру позиции. Строки ошибок относятся к этому классу.

Thanks

+0

Функции не имеют точек с запятой после них. – chris

ответ

2

Что вы хотите сделать, это невозможно. Вы пытаетесь повторно инициализировать массив, и это невозможно. Может быть, учитывая, что ваш случай использования для строк ошибок, вы можете сделать что-то вроде этого:

bool foo::ipitythefoo() 
    { 
     static const char* actualstringarray[] = {"Mr. T","Gold Chains","Mohawks"}; 
     *mystringarray = actualstringarray; 

     return false; 
    }; 

Но тогда, было бы больше смысла для массива строк ошибок быть static, чтобы начать с.