gpt4 book ai didi

c++ - 通过引用另一个类方法传递 vector 成员变量

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:52 25 4
gpt4 key购买 nike

注意:我在问题中使用了伪代码

假设我有一个名为 circle 的类,其接口(interface)名为circle.h 其中我还有一个名为 readdata 的方法,但这是在另一个中定义的名为 rectangle 的类(rectangle.h 是接口(interface))我想在我的圈子类中调用方法 readdata 并传入我的私有(private)成员变量,它是一个 vector 。如何才能做到这一点?是吗正确地通过引用传递 PRIVATE 成员变量到另一个类(class)。这不是破坏了拥有的全部目的吗私有(private)成员变量,因为现在我给类矩形访问 circle 类 vector 变量,因为我通过引用传递它。这是我的方式做它(伪代码)

circle.h

private:
vector<struct> vect;

public:
dataread()

circle.cpp

rectangle.h

readdata(vector &)




method dataread() //class method to fill up my struct
{
rectangle::readdata(vect); //i call rectangle readdata method but i
pass in a reference to my memebr variable....is this safe?
}

我应该只在本地声明 vector (在 dataread 方法中)和将其分配给引用?任何帮助将不胜感激。现在它可以编译,但有人告诉我这不好编程实践

最佳答案

将对私有(private)成员的引用传递给其他类中的方法并没有错。例如:

void myClass::myMethod() {
std::copy(myVector1.begin(), myVector1.end(), myVector2.begin());
}

虽然它没有直接传递对 myVector1 的引用,但它确实传递了一个可写迭代器,这几乎是同一件事。该类正在请求某个对象/函数对其数据执行某些操作。只要其他对象/函数只做它应该做的事情,就没有问题。

关于c++ - 通过引用另一个类方法传递 vector 成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11694976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com