C+中类的常数+; 假设我在C++代码中有以下类 class Test{ double limitsum; double limitmulti; public: void setlimits(double limitsum_,double limitmilti_){limitsum=limitsum_;limitmulti=limitmulti_} bool checksum(double a, double b){ return(a+b<limitsum); } bool checkmulti(double a, double b){ return(a*b<limitmulti); } }; class Rectangle{ double width; double hight; public: Rectangle(double width_,double hight_){width=width_;hight=hight_} Test testfunctions; } 类测试{ 双极限和; 双限多; 公众: void setlimits(double limitsum,double limitmilti){limitsum=limitsum;limitmulti=limitmulti} 布尔校验和(双a,双b){ 根据你最后的评论返回(a+b

C+中类的常数+; 假设我在C++代码中有以下类 class Test{ double limitsum; double limitmulti; public: void setlimits(double limitsum_,double limitmilti_){limitsum=limitsum_;limitmulti=limitmulti_} bool checksum(double a, double b){ return(a+b<limitsum); } bool checkmulti(double a, double b){ return(a*b<limitmulti); } }; class Rectangle{ double width; double hight; public: Rectangle(double width_,double hight_){width=width_;hight=hight_} Test testfunctions; } 类测试{ 双极限和; 双限多; 公众: void setlimits(double limitsum,double limitmilti){limitsum=limitsum;limitmulti=limitmulti} 布尔校验和(双a,双b){ 根据你最后的评论返回(a+b,c++,oop,static,C++,Oop,Static,,如果我理解你想要什么,这是我的建议 #包括 #包括 #包括/*srand,兰特*/ 课堂测试 { 公众: 静态双极限和; 静态双限制器; 公众: 静态空隙设置限值(双限和、双限和) { limitsum=limitsum; limitmulti=limitmilti; } 布尔校验和(双a,双b) { 返回(a+B是什么阻止您将这些数据成员声明为const static,以便在任何时候对所有实例都是相同的?一种方法是将chnagetestFunctions作为引用。std::reference

,如果我理解你想要什么,这是我的建议

#包括
#包括
#包括/*srand,兰特*/
课堂测试
{
公众:
静态双极限和;
静态双限制器;
公众:
静态空隙设置限值(双限和、双限和)
{
limitsum=limitsum;
limitmulti=limitmilti;
}
布尔校验和(双a,双b)
{

返回(a+B是什么阻止您将这些
数据成员声明为
const static
,以便在任何时候对所有实例都是相同的?一种方法是将chnage
testFunctions
作为引用。
std::reference\u wrapper testFunctions
允许您使用一个
Test
对象对于您需要的任意多个
Rectangle
对象。这有其缺点。您必须确保
Test
对象和
Rectangle
对象的生命周期得到适当的管理。@Pat.ANDRIA,因为OP不希望这样。他想要“限制”成员仅对其
std::vector
中的所有实例相同,而不是对所有
Rectangle
实例都相同。@Pat.ANDRIA@Fareanor事实上,我希望限制成员对
Rectangle
的所有实例相同,但当我使用
static
时,我得到一个错误
Test::limitsum的多个定义e> 。我添加了类成员的定义
double test::limitsum;
,但我仍然有相同的问题。当我尝试使用
inline
时,它可以工作,但我想知道为什么我有这些成员的多个定义。错误在于将初始化放在头文件而不是源文件中,非常感谢。我的最后一个问题是:静态成员是否被其他不属于类
Test
的实例所知道,因为我读到`关键字static声明了未绑定到类实例的成员。`很高兴它被解决了。感谢SOI在回复中添加了一些编辑,以回答评论中的其他问题。:)