disc discOne; // Construct objectsdisc discTwo;
类的声明是通过头文件单独完成的:
class disc{public: disc(); ~disc(); voID changeRadius(short); voID throwdisc(short,short); voID printLocation() const; voID printInfo() const;private: short radius; short xlocation; short ylocation;};
我可以使用printInfo()和changeRadius()函数,但是如何比较(例如)这两个对象之间的半径?我想做一些比这更复杂的事情,但如果我理解了基础知识,我想尝试解决它.
我遇到的问题是我过去使用过结构,如果是这样的话,我会简单地说:
discOne.radius > discTwo.radius
或类似的东西.但是,类的语法调用与该类绑定的函数.对于漫无边际的对不起,但我无法明确表达 – 可能是为什么我一直在努力通过互联网搜索找到任何指导.
解决方法 你可以在你的类中添加一个“getter”(比如short geTradius()const),你可以通过它获得要比较的值:discOne.geTradius()< discTwo.geTradius(). 或者,您可以添加运算符<光盘自身过载,并让它执行半径之间的比较.然而,这只有在半径是光盘的唯一属性时才有意义(它不是 - 你也有位置),如果比较半径相当于比较光盘(我不相信这是合乎逻辑的). 除此之外,还有各种笨拙的解决方案,例如添加bool radiusIsLesserThatThisOtherdiscsRadius(const disc& otherdisc)const成员函数.But,that Syntax for classes calls a function tIEd to that class
实际上,那不是真的; C没有“结构”,所以struct也引入了一个类,而discOne.radius>如果radius不是私有数据成员,discTwo.radius在这里工作得很好.但它是一个私人数据成员是合适的.
struct disc{public: disc(); ~disc(); voID changeRadius(short); voID throwdisc(short,short); voID printLocation() const; voID printInfo() const;private: short radius; short xlocation; short ylocation;};// ^ Exactly the same thing; your approach still won't work,for the same reason总结
以上是内存溢出为你收集整理的c – 比较一个类的两个对象之间的数据全部内容,希望文章能够帮你解决c – 比较一个类的两个对象之间的数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)