Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Why do I see some code using CStrings declared differently.

Some use this format

char a_c_string [];

While others use

CString another_c_string;

Is there a difference? All the references I have found on CStrings declare it as I did in the first example, I have only seen it done the other way on forums and the like where people are giving examples.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
307 views
Welcome To Ask or Share your Answers For Others

1 Answer

CString is neither a C nor a C++ type. It appears to be a Microsoft invention that is essentially an alternative to std::string:

  • CString objects can grow as a result of concatenation operations.
  • CString objects follow "value semantics." Think of a CString object as an actual string, not as a pointer to a string.
  • You can freely substitute CString objects for const char* and LPCTSTR function arguments.
  • A conversion operator gives direct access to the string's characters as a read-only array of characters (a C-style string).

I recommend ignoring it, so that:

(a) people know what you are talking about;
(b) your code is portable;
(c) you are writing C++ that everybody can rationalise about according to the worldwide-accepted ISO C++ standard that many, many people spend many, many hours arguing about for this express purpose (y'know, as opposed to a few guys in a room in one company's office).

It will only be available when you are programming with Microsoft Visual C++, which is substantially limiting.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...