第五週 課後實踐--閱讀程式(3,4,5,6)
阿新 • • 發佈:2019-02-10
問題及程式碼:
/* *Copyright (c) 2015,煙臺大學計算機學院 *All rights reserved. *檔名稱:test.cpp *作者:吳勝男 *完成日期:2015年04月08日 *版本號:v1.0 * *問題描述:本週再補充三個和指標有關的閱讀程式,進一步掌握指標工作的原理。 友情提醒:畫出記憶體,讓程式的分析,在理性、有序中完成。如果有時間的變化,部落格中加個自己畫的圖。 可以在上機時通過單步執行,進一步和你在人腦中執行程式的過程進行對照。 *輸入描述:略 *程式輸出:略 */ #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; }
執行結果:
問題及程式碼:
#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分別幹神馬?_____1.常引用 2.宣告常成員函式______ const string& get_name() const { return name; } int get_score() const { return score; } private: string name; int score; }; //(3)下面的const幹神馬?___Student類物件的引用___ 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; }
執行結果:
問題及程式碼:
#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; }
執行結果:
問題及程式碼:
#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;
}
執行結果: