怎么计算数组成员的个数
在一个类中,通过函数返回了一个数组,函数和数组均为public。在另一个类(两个类不是继承关系)中,有个函数要用到这个数组。默认传值的时候都是传的指针。不知道sizeof/sizeof的这种方法能不能正确得到数组元素的个数?毕竟两个地方都没有很显式的指明int a[10]这样的,都是用的*a这种形式。该怎么计算数组元素的个数呢?或者怎么从一个类中将这个个数传递到另一个类中呢(函数只能返回一个返回值)?谢谢!
[解决办法]
函数只能返回一个值。如果你想返回很多的数据,可以封装成结构体返回。或者在函数参数里提供一个已经分配存储空间的指针。
[解决办法]
增加一个引用参数吧。
[解决办法]
增加一个成员函数返回数组长度
[解决办法]
#include<stdio.h>class A{public: int aa[10];};class B{public: int bb[20]; void show(A &ca) { printf("引用传递后A类对象里的数组大小为:%d\n",(sizeof ca.aa)/sizeof(int)); } void show2(A *p) { printf("指针传递后A类对象里的数组大小为:%d\n",(sizeof p->aa)/sizeof(int)); }};int main(){ A a1; B b1; printf("A类里的数组大小为:%d\n",sizeof a1.aa/sizeof(int)); printf("B类里的数组大小为:%d\n",sizeof b1.bb/sizeof(int)); b1.show(a1); b1.show2(&a1);}