我看过这段代码
void path(
const char * p);
» more...
void path(
const std::string & p);
» more...
能不能做如下修改,基本上把*和&..
void path(
const char & p);
» more...
void path(
const std::string * p);
» more...
我看过这段代码
void path(
const char * p);
» more...
void path(
const std::string & p);
» more...
能不能做如下修改,基本上把*和&..
void path(
const char & p);
» more...
void path(
const std::string * p);
» more...
第一个是将字符数组作为指向第一个字符的指针传递。这就是在 C 中传统上处理字符串的方式,由于这两种语言的共同遗产,您有时会在 C++ 中看到它。虽然您可以传递一个引用并仔细记录它实际上应该是一个数组,但对于习惯于该约定的任何人来说,它都会感到困惑。
第二个是通过引用传递单个对象。虽然您可以使用指针模拟引用,但对于习惯于 C++ 引用语义的任何人来说,这会(轻微地)混淆。
在更改之前,您应该了解该功能正在尝试做什么。
让我们看看当您更改为时会发生void path(const char * p);
什么void path(const char &p);
可能char *
传递 a 的原因可能是该函数需要访问一个字符数组。如果将参数更改为char &p
,则该函数仅接受 achar
引用。
是的你可以。但是你必须小心使用.
和->
在这些函数中
并记住意思是强制改变的