【发布时间】:2019-09-25 05:25:29
【问题描述】:
我有一个问题。 用指针向量作为参考向量可以吗?
Struct Child
{
int n;
void func(int _n)
{
n = _n;
};
}
struct Parent
{
std::vector<Child> vec;
}
void func(Parent* p)
{
std::vector<Child>& ref = p->vec; // is this ok?
int value = 10;
ref[0].func(value); // is this ok?
}
int main()
{
...
...
Parent p;
func(&p);
...
...
return 0;
}
编译器gcc 4.4.7(c++11下)
我想,如果改变引用的值可以吗?
ref[0].func(value)
谢谢。
【问题讨论】:
-
您是否尝试编译代码?如果是这样,编译器是否产生任何警告或错误消息?
-
您将
ref定义为对Child结构的向量 的引用。ref本身不是Child或对特定Child的引用。 -
还要注意引用和指针是两个非常不同的东西。并且您没有将指针传递给
::func。 -
@R Sahu 这是示例代码。 ref-> 是错误的 ref.func 是正确的
-
@Someprogrammerdude 代码有错误。我想知道仅转换一个指向引用的指针是否有问题。
标签: c++ pointers reference c++98