c++ 静态函数_c语言if结构格式

c++ 静态函数_c语言if结构格式1、对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员或静态方法2、只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为静态成员变量在对象创建之前就已经被分配了内存空间)3、静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

 

1、对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员或静态方法

2、只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为静态成员变量在对象创建之前就已经被分配了内存空间)

3、静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放).静态成员变量是在程序编译时分配空间,而在程序结束时释放空间.

4、初始化静态成员变量要在类的外面进行.初始化的格式如下:数据类型 类名::静态成员变量名 = 初值;

5、不能用参数初始化表,对静态成员变量进行初始化.

6、即可以通过类名来对静态成员变量进行引用,也可以通过对象名来对静态成员变量进行引用.

7、普通成员函数和静态成员函数的区别是:

普通成员函数在参数传递时编译器会隐藏地传递一个this指针,通过this指针来确定调用类产生的哪个对象;

但是静态成员函数没有this指针,不知道应该访问哪个对象中的数据;所以在程序中不可以用静态成员函数访问类中的普通变量.

#include <iostream>
using namespace std;
class CShop
{
public:
    CShop(int size);
    void ShowSize();
    static void ShowPrice(); //声明静态成员函数用来显示价格
    static int ChangePrice(int price); //声明静态成员函数用来更改价格
private:
    int m_size; //声明一个私有成员变量
    static int m_price; //声明一个私有静态成员变量
};
CShop::CShop(int size)
{
    m_size = size;
}

void CShop::ShowSize()
{
    cout << "商品数量:" << m_size << endl;
}
void CShop::ShowPrice()
{
    cout << "商品价格:" << m_price << endl;
}
int CShop::ChangePrice(int price)
{
    m_price = price;
    return m_price;
}
int CShop::m_price = 100; //初始化静态成员变量
 
int main(int argc, char * argv[])
{
    CShop::ShowPrice();
    CShop::ChangePrice(200);
    CShop::ShowPrice();
    CShop shop(50);
 
    shop.ShowSize();
    shop.ShowPrice();
 
    return 0;
}

Jetbrains全家桶1年46,售后保障稳定

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234362.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++ 中的容器类详解

    C++ 中的容器类详解C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。1、vector    连续存储结构,每个元素在内存上是连续的;    支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操…

    2022年9月13日
    4
  • rgbd slam_RGB模型

    rgbd slam_RGB模型本文采用高博大佬的代码来跑kinectv1获取的彩色图和深度图。首先是获取彩色图和深度图的代码:#include&lt;windows.h&gt;#include&lt;iostream&gt;#include&lt;NuiApi.h&gt;#include&lt;opencv2/opencv.hpp&gt;#include&lt;string.h&gt;usin…

    2022年9月18日
    3
  • listagg()行转列函数[通俗易懂]

    listagg()行转列函数[通俗易懂]–基础数据DROPTABLE"ZYH_TEST";CREATETABLE"ZYH_TEST"("ID"NUMBER(19)NOTNULL,"NAME"VARCHAR2(255BYTE),"CREATETIME"DATE,"SCORE"NUMBER,"CLASSID"VARCHAR2(255BYTE)

    2022年9月7日
    2
  • laravel php artisan migrate 数据迁移时出现的[HY000][1045]错误

    laravel php artisan migrate 数据迁移时出现的[HY000][1045]错误

    2021年10月22日
    42
  • java和html_如何区别html和html5

    java和html_如何区别html和html5JSP和HTMLJSP代表JavaServerPages;它主要用于开发动态网页,文件的扩展名为.jsp。JSP的主要优点是程序员可以在HTML中插入Java代码;使用JSP标签插入Java代码。程序员可以编写<%标签来启动Java代码,并在Java代码的末尾写入%>标签。JSP允许在HTML文件中插入Java代码HTML代表超文本标记语言。它是众所周知的用于开发网页的标记语言,有助于构建网页结构。JSP和HTML之间的区别1、采用的技术不同HTML是客户端技术,提供

    2025年8月13日
    2
  • statement和prepareStatement 的区别

    statement和prepareStatement 的区别????Java基础教程系列:Java基础教程系列????Java学习路线总结:搬砖工逆袭Java架构师????Java经典面试题大全:10万字208道Java经典面试题总结(附答案)????简介:Java领域优质创作者????、CSDN哪吒公众号作者✌、Java架构师奋斗者????????扫描主页左侧二维码,加入群聊,一起学习、一起进步????欢迎点赞????收藏⭐留言????一、【粉丝福利】送书啦,大家期待已久的Vue!本次活动送书规则:【送

    2022年6月12日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号