如何在c ++中访问成员函数中的私有数组

时间:2014-03-29 07:41:50

标签: arrays function private member

Fruit.h

class Fruit 
{
    private:
        std::int no[3];
    public:
        void initialize();
        int print_type();
};

Fruit.cpp

#include "Fruit.h"
void Fruit::initialize() {
    int no[] = {1, 2, 3};
}
int Fruit::print_type() {
    return type[0];
}

Main.cpp的

#include <iostream>
#include "Fruit.h"
using namespace std;
int main()
{
    Fruit ff;
    ff.initialize();
    int output = ff.print_type();
    cout << output;
    system("pause");
    return 0;
}

假设所有文件中都包含必需的指令。 此时,我在找回输出时发现问题,因为它不会导致&#34; 0&#34;但垃圾价值。如何在不使用构造函数的情况下修复它?

真诚希望有人帮我一个忙。

2 个答案:

答案 0 :(得分:0)

请阅读C ++中的构造函数。你不了解OOP C ++中的基本内容。

#include "Fruit.h"
void Fruit::initialize() {
    int no[] = {1, 2, 3};
}

这不正确。你最多写this.nono

int Fruit::print_type() {
    return type[0];
}

什么是变量type

答案 1 :(得分:0)

这是不使用构造函数和析构函数的方法,我希望你发现它很有用。

#include <iostream>


class Fruit 
{
        private : int* no;

        public : void initialize();
        public : void clean();
        public : int print_type();
};


void Fruit::initialize()
{
        no = new int[ 3 ];
        no[ 0 ] = 1;
        no[ 1 ] = 2;
        no[ 2 ] = 3;
}


int Fruit::print_type()
{
        return no[ 0 ];
}


void Fruit::clean()
{
        delete[] no;
}


int main()
{
        Fruit f;
        f.initialize();
        int o = f.print_type();
        std::cout << o;
            f.clean();
        return 0;
}