2011-10-04 28 views
0

我是C++的新手,请耐心等待。标题中的C++数组

基本上,我正在为我的课程之一创建标题,并且遇到了困难。

正在讨论的类的一个实例是由Main()函数创建的,现在当创建了这个类的实例时,我想传入Array长度。但是,如果它是在Header中静态声明的,我不能这样做,对吧?

任何解决方案?对不起,这可能很简单,但我来自Java背景,我试图不用Java方式来做事情。

谢谢。

+7

代码不足 –

回答

2

如果你使用C++进行编程,并且希望声明一个可变大小的数组,那么你不希望使用“内置”C风格“数组”。这是一种坚果和螺栓工具。

您可能想用std::vector代替。这是一个更灵活的类别,不需要在申报时指定尺寸。你可以看看教程在其网络上使用,但这里是从谷歌的随机一个:

http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.html#VECTOR

的C++一个有趣的方面是,即使载体“库代码”,你可以有一个类可能在不修改编译器的情况下自己编写,它们允许使用括号等符号方便访问。从常见问题的一些优点和一些缺点,从这里提出的常见问题解答,需要双方用一粒盐:

http://yosefk.com/c++fqa/operator.html

虽然有许多使用C数组的裸机抽象一些性能优势,std::vector几乎肯定比Java数组快,并且在很多时候都是更好的选择。

+0

谢谢,我现在正在查看矢量。 –

0

如果我正确理解你,你想获得一个静态类型数组的大小,并将其传递给一个类?

如果这是正确的,看看http://ideone.com/JLoZY,这是我想到的第一件事。

基本上编译器会填写所需的模板参数,所以你不必担心它们。这可以很容易地采用在其他情况下使用

+0

基本上,当程序被执行时,在类的一个实例被创建之前,我想通过cin获取数组的长度。 –