在实例变量名称旁边使用方括号时,如何在c ++中使用方括号?

基本上我有以下代码:

===========================

A.h

class A {

    int state = -1;

public:
    void print();

    void set(int i);
};

===========================

A.CPP

void A::print() {
    cout<<state<<endl;
}

void A::set(int i) {
    state = i;
}

===========================

主要

int main() {

    A a[2];

    a[0].set(1);
    a[1].set(2);

    a[0].print();
    a[1].print();
    a[2].print();
    a[3].print();

    return 0;
}

这就是控制台中显示的内容:

1
2
1542598400
1919717043

如果我以这种方式更改main:

int main() {

    A a[1]; // <---- CHANGE

    a[0].set(1);
    a[1].set(2);

    a[0].print();
    a[1].print();
    a[2].print();
    a[3].print();

    return 0;
}

显示为

*** stack smashing detected ***: <unknown> terminated
1
2
1054043105
-2010162576

我不知道发生了什么

lyq127270 回答:在实例变量名称旁边使用方括号时,如何在c ++中使用方括号?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2661172.html

大家都在问