首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当函数/方法需要*或&时

当函数/方法需要*或&时
EN

Stack Overflow用户
提问于 2019-04-08 23:11:37
回答 1查看 61关注 0票数 -1

编辑:谢谢大家。有很多很棒的信息要去看。我需要一段时间才能学会。

在10+多年与编程的不健康的罗曼史之后,我想我终于明白我的想法了。但我对他们还是不太满意。

我有一些相对简单的代码:

代码语言:javascript
运行
复制
#include <iostream>
#include <string.h>

using namespace std;

class MyString
{
private:
    char* buffer;

public:
    //Constructor
    MyString(const char* initString)
    {
        if(initString != NULL)
        {
            buffer = new char[strlen(initString)+1];
            strcpy(buffer, initString);
        }
        else
            buffer = NULL;
    }
    //Destructor
    ~MyString()
    {
        cout << "Invoking destructor, clearing up\n";
        if (buffer != NULL)
            delete [] buffer;
    }

    int GetLength()
    {
        return strlen(buffer);
    }

    const char* GetString()
    {
        return buffer;
    }
};

int main()
{
    MyString SayHello("Hello from String Class");
    cout << "String buffer in MyString is " << SayHello.GetLength();
    cout << " characters long\n";

    cout << "Buffer contains: " << SayHello.GetString() << endl;

    return 0;
}

为什么MyString希望从第一个参数(在main()中)创建一个指针?为什么不直接复制过去呢?还是使用操作员的地址?

我问错问题了吗?看不清什么东西?

非常感谢。希望问题是清楚的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55576571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档