gpt4 book ai didi

c++ - 一种使用不同风格的私有(private)成员的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:05 24 4
gpt4 key购买 nike

class A{

private:

std::vector<class X> flavor1
std::vector<class X> flavor2

public:

void useVectorOfX(std::vector<class X> someflavor){
... // same logic for both flavors
}
}

现在我想从另一个类调用 useVectorOfX(),根据需要为其提供 flavor1flavor2。我可以想到三种方法 -

方式一:使用Getter方法;但是 class A 通过 Getter 方法获取自己的数据似乎不自然。

class B{

public:

A *a = new A();
a->useVectorOfX(a->getFlavor1());
}

方式 2:使两个 vector public(dirty)

方式 3:分离方法?

class B{

public:

A *a = new A();
a->useVectorOfXForFlavor1();
a->useVectorOfXForFlavor2();

}

最佳答案

方式 1 的描述性更强:

class A {    
public:
enum {
flavor1 = 0, // used as array index, first element must be zero
flavor2,
} vector_flavor;
static const int number_of_flavors = 2;

void useVectorOfX(vector_flavor flav){
std::vector<class X> someflavor& = vectors[flav];
// ...
}
private:
std::vector<class X> vectors[number_of_flavors];
}

A object; // lol
object.useVectorOfX(A::flavor1);

关于c++ - 一种使用不同风格的私有(private)成员的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395768/

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