C++ 为什么指针输出的是字符串而不是C++;?

C++ 为什么指针输出的是字符串而不是C++;?,c++,pointers,dynamic-arrays,C++,Pointers,Dynamic Arrays,我正在处理一个使用指针的字符串类,我只是在理解我的print函数如何在这里工作时遇到了一些困难。具体来说,为什么cout这是因为变量pString是指针。然而,的实现取决于这样一个事实,“但仅适用于char*和wchar\u t*类型,而不是任何和所有指针。 class MyString { public: MyString(const char *inString); void print(); private: char *pS

我正在处理一个使用指针的字符串类,我只是在理解我的
print
函数如何在这里工作时遇到了一些困难。具体来说,为什么
cout这是因为
变量
pString
是指针。然而,
的实现取决于这样一个事实,“但仅适用于char*和wchar\u t*类型,而不是任何和所有指针。
class MyString
{
    public:
        MyString(const char *inString);
        void print();
    private:
        char *pString;
};


MyString::MyString(const char *inString)
{
    pString = new char[strlen(inString) + 1];
    strcpy(pString, inString);
}

void MyString::print()
{
    cout << pString;
}

int main( )
{
    MyString stringy = MyString("hello");
    stringy.print();
    return 0;
}
cout << static_cast<void *>(pString);
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char** argv)
{
    char string1[] = "lololololol";
    char* string2;

    string2 = string1;

    printf("%s",string2);
    printf("%p",string2);

    return EXIT_SUCCESS;
}