《C++语言基础》程序阅读——指针、const、static
2015-04-01 10:03
253 查看
返回:贺老师课程教学链接
本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。
(1) 阅读程序,写出程序的运行结果并理解
(2) 阅读程序,写出程序的运行结果并理解
(3) 阅读程序,写出程序的运行结果并理解
(4) 请写出程序中const出现的语法现象及其所起的作用
(5) 请写出下面程序的输出结果
(6) 请写出下面程序的输出结果
本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。
(1) 阅读程序,写出程序的运行结果并理解
#include <iostream> using namespace std; class base { private: int m; public: base() {}; base(int m){this->m=m;} int get(){return m;} void set(int m){this->m=m;} };//base_end int main() { base *ptr; ptr=new base[2]; ptr->set(30); ptr=ptr+1; ptr->set(50); base a[2]= {1,9}; cout<<a[0].get()<<","<<a[1].get()<<endl; cout<<ptr->get()<<","; ptr=ptr-1; cout<<ptr->get()<<endl; delete[] ptr; return 0; }
(2) 阅读程序,写出程序的运行结果并理解
#include<iostream> using namespace std; class CE { private: int a,b; int getmin(){return (a<b? a:b);} public: int c; void SetValue(int x1,int x2, int x3) { a=x1; b=x2; c=x3; } int GetMin(); }; int CE::GetMin() { int d=getmin(); return (d<c? d:c); } int main() { int x=5,y=12,z=8; CE *ep; ep=new CE; ep->SetValue(x+y,y-z,10); cout<<ep->GetMin()<<endl; CE a=*ep; cout<<a.GetMin()*3+15<<endl; return 0; }
(3) 阅读程序,写出程序的运行结果并理解
#include <iostream> using namespace std; class Time { public: Time(int,int,int); void output_time( ); int hour; int minute; int sec; }; Time::Time(int h,int m,int s) { hour=h; minute=m; sec=s; } void Time::output_time( ) { cout<<hour<<":"; cout<<minute<<":" <<sec<<endl; } int main( ) { Time t1(10,13,56); int *p1=&t1.hour; //指向数据成员的指针 cout<<*p1<<endl; t1.output_time( ); Time *p2=&t1; //指向对象的指针 p2->output_time( ); void (Time::*p3)( ); //指向成员函数的指针 p3=&Time::output_time; (t1.*p3)( ); return 0; }
(4) 请写出程序中const出现的语法现象及其所起的作用
#include <iostream> #include <string> using namespace std; class Student { public: Student() {} Student( const string& nm, int sc = 0 ): name(nm), score(sc){} //(1)下面的const干神马?_____________ void set_student( const string& nm, int sc = 0 ) { name = nm; score = sc; } //(2)下面的const分别干神马?___________ const string& get_name() const { return name; } int get_score() const { return score; } private: string name; int score; }; //(3)下面的const干神马?_____________ void output_student(const Student& student ) { cout << student.get_name() << "\t"; cout << student.get_score() << endl; } int main() { Student stu( "Wang", 85 ); output_student( stu ); return 0; }
(5) 请写出下面程序的输出结果
#include<iostream> using namespace std; class myClass { public: myClass(){ number++;} ~myClass(){ number--;} static int number; }; int myClass::number=0; int main() { myClass *ptr; myClass A,B; myClass *ptr_Arr=new myClass[3]; ptr=ptr_Arr; myClass C; cout<<myClass::number<<endl; delete []ptr; return 0; }
(6) 请写出下面程序的输出结果
#include <iostream> using namespace std; class Test{ private: static int val; int a; public: static int func(); static void sfunc(Test &r); }; int Test::val=20; int Test::func() { val+=val; return val; } void Test::sfunc (Test &r) { r.a=25; cout<<"Result3="<<r.a<<endl; } int main(){ cout <<"Resultl="<<Test::func()<<endl; Test a; cout<<"Result2="<<a.func()<<endl; Test::sfunc (a); return 0; }
相关文章推荐
- 《C++语言基础》程序阅读——指针、const、static(二)
- 《C++语言基础》程序阅读——指针、const、static(一)
- 第5周项目--程序阅读——指针、const、static
- 《C++语言基础》实践项目——指针、const、static
- 第三周程序阅读(2) 利用指针访问私有数据成员
- 第十二周项目1-1:阅读程序(static变量
- 第十五周项目2-程序阅读(对指针的理解1)
- 走进C++程序世界-------强制数据类型转换(static_cast、dynamic_cast、reinterpret_cast、const_cast)
- 第五周 程序阅读——static(1)
- 《C++语言基础》程序阅读——构造函数和析构函数
- c指针和const 的小程序
- 第五周 阅读程序(1)--指针
- 分享:程序笔试题-const变量通过指针修改问题
- 第五周 程序阅读——指针(2)
- 第五周 程序阅读——指针(3)
- 第五周项目零:阅读程序(4):const
- 二级指针、函数指针、枚举、static、const
- C++-const_cast只能用于指针和引用,对象的const到非const可以用static_cast
- 利用结构体来实现高性能洗发扑克牌程序同时探讨const与指针
- 第15周项目2阅读程序(指针+条用函数)