c++课程感想6

static:共享即通讯

一句话概括:局部作用域,全局生存期。

为什么要设计成为这样?

可以看一下这样的一段代码:

#include <iostream.h>
#include <string.h>

class CSmallOne
{
public:
    CSmallOne(int sma);
    int a;
};

CSmallOne::CSmallOne(int sma)
{
    cout <<"Smallone constructing with a value of"
        << sma <<endl;
}

void fn(int n)
{
    static CSmallOne sm(n);    //静态局部对象在静态数据区创建(只一次)
    sm.a += n;
    cout <<"In function fn with n= " << sm.a <<endl;
}

//CSmallOne sm(5);

void main()
{
    fn(10);        //只看见一次调用构造函数
    fn(10);        //值可以累加(静态局部对象的特征)
}

在这里,创建了一个静态局部对象,然后构造函数在这里只是调用了一次,当再次调用时,并没有调用构造函数,这里我们可以类比静态局部变量,这个是存储在静态数据区域的,然后构造函数一旦调用,对象就在静态区了,所以下次就不需要我们再次去调用了。

还有就是一个程序

#include <iostream.h>
#include "A.h"

A :: A()
{
	cout << "in A" << endl;
}
class A
{
public:
	A();
};

#include <iostream.h>
#include "A.h"

A a;

void main()
{
	cout << "in main" << endl;
}

 在这里,我们要考虑的是出来的结果,为什么是A而不是main,在这里,A在全局区域,那么首先在加载时便会自行调用构造函数,于是A出来了,但是我们不妨想想,在这里,直接没有经过main函数就进行调用了,所以这是个问题。一般设计者是希望在main里面执行的。

时间: 2024-10-05 04:09:30

c++课程感想6的相关文章

本周软件工程课程感想

由于我们团队项目进行到一半,不便传上来代码.我就这周软件工程课程的内容写一点感想吧. 下面这是我们图形学课程实验的部分代码: /**********myInit**********/ void myInit() { pn = 0; glClearColor(1.0, 1.0, 1.0, 0.0); glColor3f(0.2f, 0.2f, 0.9f); glPointSize(5.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluOrth

SPM(Software Project Management)课程感想

今天要说的是软件项目管理课程学习后的一些心得体会.这学期我选修了软件项目管理课程,进行了共8周的学习.   其实,进入大三后,我们开设了各种专业选修课,通过对各种课程的学习,我见识到了丰富多样的知识体系和它们之间微妙的联系.我更加明白自己在学什么.还欠缺什么,也对自己的专业有了更深的认识和更大的兴趣.当然,当初没有好好学习基本功也为现在运用更高层次理论增加了很大障碍.也许想要真正体会到一门科学的有趣之处,往往要经历一个基础知识的堆砌阶段,而这个阶段一般枯燥乏味.目标不明.面对这种情况,有的人不断

c++课程感想4

构造函数与析构函数  构造函数的作用: 1.初始化对象 2.为对象分配资源 3.程序员认为应该在此时作的其它工作 初始化对象,为什么要在c++里面自动调用构造函数,老师用了一个印象深刻而且特别恰当的例子,用来比作找对象,不可能是找的一坨肉酱,自己去初始化吧,肯定要先初始化好,这里就是c++的创始人的面向对象的思想,这里说得极好. 为对象分配资源,这里说的是资源,而不是内存,因为内存早就已经分配好,不需要构造函数进行分配了. 对应的析构函数与构造函数相反,是为了释放内存的,对象用完了进行清理现场.

c++课程感想7

const: const的设计就是为了干掉#define,主要有三个方面: 1.常数 #include <iostream.h> #define pi 3.1415926 void main() { int a = 5; int b = 3; cout << "a = " << a << endl; cout << &a << endl; cout << &b << endl

c++课程感想2

#include <iostream.h> void main() { int *p; cout << p << endl; cout << &p << endl; p = new int; *p = 5; cout << *p << endl; cout << p << endl; delete p; cout << *p << endl; cout <<

期末作业验收

龟龟别秀了小组 小组成员:张思槐.叶港晨.庄友鹏.郑晨佳.陈晓凯 1.负载均衡程序(可直接贴代码或提供对应的代码链接) 代码存放在github上: 拓扑结构 负载均衡脚本 2.演示视频截图 创建拓扑结构如下: 下发流表: 负载均衡: 数据默认从S2的4端口发出送往H1,当端口4达到一个阈值的时候,部分数据将会从端口发出经过S3发往H1 3.程序分工 我负责程序代码的编写和视频演示的录制. 4.课程感想 通过这次课程,了解了很多前沿的内容,包括Openflow.mininet.floodlight

java入门经验分享——记面向对象先导课程学习感想

选择在暑期学习面向对象先导课程的初衷是为大二下学期面向对象课程做一些铺垫,接触入门java语言.在接触java的过程中,就编程语言的学习方法而言,我从刚入学时的手慌脚乱四处寻求帮助到现在慢慢养成了自己不断寻找困难解决方法的习惯,感觉自己的另一种自学能力--一种计算机工科的实践能力得到了培养,这种自学能力跟学习基础课程理论知识的感觉完全不同,这种需要在实践和动手中得到经验和知识的自学方法与以前理解现成抽象理论概念的自学方法可以说是完全不同了.作为一个偏好理论研究的理科女生,动手实践能力在此之前几乎

初读构建之法的感想和对课程的期待

看了构建之法的前几节,最开始的发现在于我之前理解的软件工程是错误的,连狭隘都谈不上吧,因为机器的以为软件工程就是编程,其实不然,像书中所说软件=程序+软件工程.可以说软件的基础是程序,而软件工程是将一个编好的程序通过需求分析,测试等操作变成一个较成熟的程序.他需要一个规范的流程,团队的协作,当然也需要个人的技能.这里我们就要提到个人技能了,虽说以团队的形式合作,但一个人的职业技能还是能够影响甚至决定全局的,如书中提到一场足球赛可以有很多种战术协作,但每一次的传球射门都要凭借每个球员单独来完成,所

课程设计感想

第一次做的课程设计并不理想,尤其是在知识完善程度不高的情况下,下学期应该提前学好数据结构以便跟不上反而要多花时间去理解. 一开始的时候真的无从下手,刚学习的文件一窍不通,再助教和班级同学的帮助下,初步了解了文件的使用. 找bug是一个令人头疼的事情,特别是第一次写这么长的代码,人家都说我是再写bug而不是再写程序设计.再不懈努力下,终于解决了大部分的问题,有些还是请助教帮忙解决的. 先构造一个流程图或许会是个解决办法的好方法,没必要边想边写代码,有时候修改一个就要修改好几个,少一个功能可能要影响