1+2+3....+n的构造函数求法(类的静态成员变量)

C++静态成员详解
本文深入探讨了C++中静态成员变量的初始化及使用方法,包括如何正确地初始化静态成员变量,为什么在使用前需要初始化,以及静态成员函数的限制等关键概念。

解法一:

1.static变量在类外赋值,且前面要加类型。

3 类的静态成员变量在使用前必须先初始化。

2.这题为什么要先reset一下,在外面不是赋值了吗?

class tmpClass{
public:
    tmpClass()
    {
        ++N;
        sum+=N;
    }
    static int getsum()
    {
        return sum;
    }
    static void reset()
    {
        N=0;
        sum=0;
    }
   
private:
    static int sum;
     static int N;
    
};
//类的静态成员变量在使用前必须先初始化。
int tmpClass::sum=0;//这里必须要有int
int tmpClass::N=0;




class Solution {
public:
    int Sum_Solution(int n) {
        tmpClass::reset();//这里必须要重新置0,可能没有初始化成功??
       
        tmpClass* tmparr=new tmpClass[n];
     
        delete []tmparr;
        return tmpClass::getsum();
    }
};


结论1:不能通过类名来调用类的非静态成员函数

结论2:类的对象可以使用静态成员函数和非静态成员函数。

因为静态成员函数属于整个类,在类实例化对象之前就已经分配空间了,而类的非静态成员必须在类实例化对象后才有内存空间,所以这个调用就出错了,就好比没有声明一个变量却提前使用它一样。 

结论3:静态成员函数中不能引用非静态成员。

结论4:类的非静态成员函数可以调用用静态成员函数,但反之不能。

类的静态成员变量在使用前必须先初始化。

结论5:类的静态成员变量必须先初始化再使用。




解法二:详细见《剑指offer》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值