English 中文(简体)
C2143 错误 c ++
原标题:C2143 error c++
  • 时间:2011-11-21 15:53:29
  •  标签:
  • c++
  • string

Sorry for this question but I am stuck. I have folowing syntax:

class xx
{
..some simple fields like: int t;  // )))
public: class  anotherClass;
xx();
MyObj* obj();
string*  name(); //error C2143: syntax error : missing  ;  before  *    

}

i have write # include <string> What does compiler wants from me?!

最佳回答

它希望你告诉他,string。 你们想要的是标准一:

class xx
{
  public:
    std::string*  name();
};

Now, I m not sure why you would be returning a pointer to a string. That s a segmentation fault waiting to happen, if you ask me. Two m或e viable options that seem reasonable to me:

class xx
{
    std::string _name;
  public:
    const std::string& name() const 
    { 
        return _name; // WARNING: only valid as long as 
                      // this instance of xx is valid
    }
};

class xx
{
  public:
    std::string name() const { return "hello w或ld"; }
};
问题回答

你们要么需要完全限定地加以扼杀,要么将其带入目前的名称空间:

std::string* name();

using std::string;

在一个头盔中,它通常认为污染全球名称空间的不良做法是可取的。

The compiler does not know what string is because string is residing in the namespace std, not in the global namespace. You need to change string to std::string.

在您的卷宗中,你可以使用“使用名空;”或“使用 st:扼杀”;然后是书写“扼杀”。 但是,你永远不应在标题文件中使用名称空间声明。

BTW,因为其他人说,归还一块地str* 是不使用的,通常你会回座。





相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签