printf()関数の戻り値とマルチステート実装
関数の戻り値:
printf関数の一般的な形式は:
int printf(const char *format,[argument]);
以上の形式では、Visual C++に「printf(」と入力すると表示されます.
説明printf関数タイプは整数であり、その戻り値は整数値である.
その値は実際にprintf制御出力の文字数である.
printf()関数は実際にはすべてのパラメータを文字で出力しており、この関数のパラメータ1(const char*format)に基づいて、理解に難くありません.
例:
以上のプログラムが出力されます.
gelin
the value of printf is:6
24
C++の多態性
//結果:B::func 1 Bfunc 2 B::func 1 A::func 2
エラー:
//結果:CreateObj()関数が返すオブジェクトは、呼び出しが終了するにつれてメモリ領域が解放されるため、結果は任意の数値になります.
printf関数の一般的な形式は:
int printf(const char *format,[argument]);
以上の形式では、Visual C++に「printf(」と入力すると表示されます.
説明printf関数タイプは整数であり、その戻り値は整数値である.
その値は実際にprintf制御出力の文字数である.
printf()関数は実際にはすべてのパラメータを文字で出力しており、この関数のパラメータ1(const char*format)に基づいて、理解に難くありません.
例:
int a,b;
a = printf("gelin
"); //a 6,
b = printf("the value of printf is:%d",a); //b 24
printf("
%d
",b);
以上のプログラムが出力されます.
gelin
the value of printf is:6
24
C++の多態性
#include <iostream>
using namespace std;
class A
{
public:
virtual void func1()
{
cout<<"A::func1";
}
void func2()
{
cout<<"A::func2";
}
};
class B:public A
{
public:
void func1()
{
cout<<"B::func1";
}
void func2()
{
cout<<"B::func2";
}
};
void main()
{
B x;
B* pB = &x;
A* pA = &x;
pB->func1();
pB->func2();
pA->func1();
pA->func2();
printf("
");
}
//結果:B::func 1 Bfunc 2 B::func 1 A::func 2
エラー:
#include <iostream>
using namespace std;
class A
{
public:
A(){}
virtual ~A(){}
virtual int f1()
{
//cout<<"Tencent";
return -1;
}
};
class B:public A
{
public:
B()
{
//memset(this, 0, sizeof(B));
m_nIntB = 0;
}
~B(){}
int f1()
{
return m_nIntB;
}
private:
int m_nIntB;
};
int main()
{
A *p = new B();
cout<<p->f1()<<endl;
delete p;
return 0;
}
#include <iostream>
using namespace std;
class CTest
{
public:
CTest()
{
m_nData = 0;
}
~CTest(){}
int GetData()
{
return m_nData;
}
private:
int m_nData;
};
CTest& CreateObj()
{
CTest test;
return test;
}
int main()
{
CTest test = CreateObj();
cout<<test.GetData()<<endl;
return 0;
}
//結果:CreateObj()関数が返すオブジェクトは、呼び出しが終了するにつれてメモリ領域が解放されるため、結果は任意の数値になります.
#include "stdio.h"
int main(int argc, char* argv[])
{
printf("%d
",int(10/3));//3
printf("%f
",double(10/3));//3.000000
printf("%f
",10/3);//0.000000
int i = 0;
printf("%d,%d
",i++,i++);//0,0
i = 0;
printf("%d,%d
",i++,++i);//1,1
i = 0;
printf("%d,%d
",++i,++i);//2,1
i = 0;
printf("%d,%d
",++i,i++);//1,0
return 0;
}