我是C++的新手,仍然尝试学习语法和最佳实践。

我用一个参数定义了一个方法:

void foo(const std::string& name)

1)这对于将使用用户在例如main方法中定义的字符串的函数来说是正确的参数声明吗?

2)如果这是正确/建议的语法,则示例参数的实例化是什么样的?

最佳答案

我不确定我是否完全理解您的问题,但我会尽力澄清。

您使用术语“方法”。我假设您的方法封装在一个类中?如果是这样,那么:-

在您的头文件(例如source.h)中,

class dog
{
    ...
    public:
       void foo(const std::string &name);
    ...
};

在您的源文件中(例如source.cpp)
void dog::foo(const std::string &name)
{
    // Do something with 'name' in here
    std::string temp = name + " is OK!";
}

在您的“main”函数中,您可以实例化“dog”类,然后调用“foo”函数,如:-
void blah()
{
    dog my_class;
    my_class.foo("Testing my class");
}

如果您想要一个函数(即未封装在类中的“方法”),那么您所拥有的是正确的。

在您的源文件中(例如source.cpp)
void foo(const std::string &name)
{
    // Do something with 'name' in here
    std::string temp = name + " is OK!";
}

如果您希望能够从该特定源文件之外调用函数,则还需要在头文件中转发声明函数。

在您的头文件中(例如,source.h)
void foo(const std::string &name);

要调用您的函数,
void blah()
{
    foo("Testing my class");
}

希望这可以帮助!

关于c++ - C++-定义/实例化字符串的语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1664054/

10-16 17:00