小编Adr*_* MB的帖子

通过C++中的常量引用将指针传递给对象

我正在为大学做一个实际的任务,我遇到了一个问题.我有一个声明这个方法的类:

bool graficarTablero(const Tablero *&tablero, const string &nombreArchivo);
Run Code Online (Sandbox Code Playgroud)

我想通过常量引用传递指向对象Tablero的指针.如果我称这个函数为例如,例如:

ArchivoGrafico *grafico = new ArchivoGrafico;
if(grafico->graficarTablero(tablero, ARCHIVO_GRAFICO)){ ...
Run Code Online (Sandbox Code Playgroud)

...我收到编译错误.好吧,我不会详细说明我得到的错误,因为我认为我已经找到了一个解决方案,通过替换方法标题:

bool graficarTablero(Tablero* const& tablero, const string &nombreArchivo);
Run Code Online (Sandbox Code Playgroud)

现在SEEMS工作了(至少它现在编译),但我想知道的是第一个声明在第二个声明不起作用的原因.好吧,更重要的是,我真的想知道它们实际上是指同一个东西(通过常量引用指向对象).

好的,谢谢你的回答.


编辑1:我想做的是避免通过价值.好吧,我知道这不是一个非常昂贵的操作,但是真的没有办法使用相同的指针,并承诺它不会以任何方式被修改吗?

谢谢.


编辑2:对不起,我没有仔细阅读Jerry Coffin的回答.是的,这就是我想要的.这不是我真的必须这样做,但我可能会发现有一天很少有优化.

c++ parameters pointers reference constants

3
推荐指数
1
解决办法
7078
查看次数

标签 统计

c++ ×1

constants ×1

parameters ×1

pointers ×1

reference ×1