C++主题年技巧积累#2——我被static撞了一下腰

本文讲述了作者从C#转向C++学习时遇到的关于`static`关键字的问题,探讨了C++中`static`成员变量的声明、定义和存储位置,以及与C#的差异。通过实例解析了C++中`static`成员变量需要在类外部定义的原因,并对比了C#的处理方式。
摘要由CSDN通过智能技术生成
 

C++主题年技巧积累#2——我被static撞了一下腰

CSDN旗下水之真谛http://blog.csdn.net/FantasiaX)出品

 

前传:

         刚刚参加博文视点出版社三周年庆典回来,兴奋之余想到今天还没有更新Blog,于是跑上来更新一下——我尽量“好好学习,天天上博”。哎呀,今天见到好多名人啊!先是在金戈老师旁边坐下,然后又去问候了久仰大名的孟岩老师,在孟老师的帮助下又找到《Beginning C# Object》的译者,也是本次晚会的摄像师——韩磊老师,你问韩磊唱歌没?没有!歌被欧阳璟(《程序员》的老编,大帅哥!还是本次年会的摄影师)给唱了。晚会的精彩那没的说,大家等着看视频吧,估计CSDN上不久就会放出来。会间在杨福川的带领下,先是见到了梁晶编辑,然后又见到了亲自为我斧正译文的方舟老师。方舟老师人真不错,几分钟里还抓紧时间教我应该怎么译技术文章,怎么理顺段落、句型,如何重组定语、去掉不必要的连词……在这里,我深深地向您鞠上一躬,道一声:谢谢!同时也感谢梁编辑的不懈努力!接下来,我有幸见到了博文视点的周筠老师和CSDN的总裁蒋涛先生。过程见还见到了很多平时“只见MSN不见人”的朋友,其中包括帅哥佘广。最后还有机会见到技术专家金旭亮老师。

         庆典参加后,感觉博文视点出版社和CSDN(包括《程序员》杂志)真是两个充满激情、活力四射的团队!衷心地祝福博文视点出版社出版更多优秀的技术书籍——就像席间韩磊老师说的:出一本是一本,不糟踏书,人家买书,是真想学东西啊!也祝CSDN和《程序员》杂志越办越红火!

打油诗一首,赠予辛勤工作在出版一线的朋友们,祝你们的2007年万事如意!诗名《日出》,意思是希望博文视点出版社能“天天出书,天天出好书”——夫,日出,日日出,又日出!

日出

    学海茫茫寻师苦,

    博文乐把众人渡。

    书香满载齐挥桨,

    破浪乘风向日出!

 

小序:

         咳咳,收心啦收心啦!热闹是人家的,知识是自己的。还是收回心来写自己的技术心得吧。话说“由俭入奢易,由奢入俭难”啊……这话一点不假,连写程序都是这样。像我,以前用惯了语法舒服流畅的C#,再回过头来学C++就深刻地体验到了这一点:C#之所以用起来简洁舒服,是因为它把很多应该由程序员自己做的事情(比如分配和释放内存)都替程序员做了。换句话说,C#C/C++的设计理念是不一样的,C/C++假设程序做的一切事情(包括某些事情不去做)都是正确的,相信程序员是聪明人,决不为程序员多做任何事情;C#正好反过来,认为程序员应该不去关心底层这些东西、由程序员关注底层是容易出错的、程序员总会忘记在该分配内存的地方分配内存或者在该释放内存的地方释放内存(微软是怀疑程序员都是傻瓜还是打算把程序员都培养成傻瓜?),总之,程序员应该更多地去关心架构和实现,而不是这些细枝末节的东西……

         于是,我被培养成了一个不折不扣的“傻瓜型”程序员。所以,今天也就理所当然地被static关键字撞了一下腰、绊了一个跤。

 

正文:

         一切都源于我在写练习程序时那一瞬间的妄想……

         static关键字?小菜,C#C++里都有,原理是一样的,会了C#还写不出C++的来?看着!咱这就一样写一个出来!

         先来C#的!

//----------------水之真谛----------------//
//  http://blog.csdn.net/FantasiaX
//-----------------------------------------------//

using
System;
class
Student
{
    public static void Report() // C#
中成员方法的声明和定义合二为一
    {
        Console.WriteLine("I am a C# student.");
    }
}

class
Program
{
    static void Main (string[] args)
    {
        Student.Report();
// OK
    }
}

         再来C++的!

#include <iostream>

class Student
{
public:
         static void Report()    // C++
成员函数的声明和定义亦可合二为一,但决不是上策!
         {
                   std::cout<<"I am a C++ student."<<std::endl;
         }
};

int main(int argc, char *argv[])
{

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值