关于const的提问,麻烦大家给看看啊
有这样一个函数
function(const ABC* pAbc, const char* path);
ABC是这样一个结构体
typedef struct {
inta;
intb;
unsigned char*c;
} ABC;
这个函数作用是读取第一个参数写入第二个参数指向的文件路径中
现在我需要调用这个函数,怎么给第一个参数赋值啊?
[解决办法]
实例化一个struct啊
[解决办法]
传入的参数不一定严格的const
非const向const转化是支持的
[解决办法]
可以传非 const 的普通变量.
[解决办法]
ABC v1;
function(&v1, "C:\\ ");
const ABC v2;
function(&v2, "C:\\ ");
都可以
非const可以匹配const,在C++这属于精确匹配
const不能赋给非const,破坏常量性
[解决办法]
现在我需要调用这个函数,怎么给第一个参数赋值啊?
-----------------------------------------------
你只需要将一个指向ABC对象的指针传递给第一个参数即可,无论这个指针指向的ABC对象是否const都可以。
但是反过来就不行了,比如你的函数接受ABC*,但是你要传给他一个const ABC*,则会出错。