标题:关于静态成员函数的一个问题,请大佬帮我看看。
取消只看楼主
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
结帖率:60%
 问题点数:0 回复次数:3 
关于静态成员函数的一个问题,请大佬帮我看看。
#include<iostream>
#include<string.h>
using namespace std;
class student
{
private:
    static int total;
    int num;
    char name[20];
public:

    student(){total++;}
    ~student(){total--;}
    student(int n,const char *p="wang");
    void getname();
    int getnum();
    static void Print();
};
int student::total=0;
student::student(int n,const char *p)
{
    num=n;
    strcpy(name,p);
    total++;
}
void student::getname()
{
    cout<<name<<endl;
}
int student::getnum()
{
    return num;
}
void student::Print()
{
    cout<<"The number of all students:"<<total<<endl;
}
int main()
{
    student::Print();
    student *P=new student(13);
    student::Print();
    P->Print();
    delete P;
    P->Print();         //????????          
    student s[2];
    student::Print();
    s[1].Print();
      return 0;
}
问:为什么对象指针P被释放后,还能正确调用静态成员函数?      
搜索更多相关主题的帖子: 成员 函数 student int Print 
2018-04-09 15:05
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
得分:0 
回复 3楼 Jonny0201
哦,明白了,谢谢(能顺便问一下截图里使用的是什么软件吗?)

低头编程,用心学习!
2018-04-09 21:59
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
得分:0 
回复 2楼 rjsp
用dev试了一下,确实可以,但是最后一句“只要不存取P指向的成员”还是不清楚(是给P赋值吗?)

低头编程,用心学习!
2018-04-09 22:04
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
得分:0 
回复 5楼 Theblueman
静态与非静态的最关键的区别就是那个this指针(看了csdn的博客)

低头编程,用心学习!
2018-04-10 12:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-485889-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.298924 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved