封装意义1
# include <iostream>
using namespace std;
const double PI = 3.14 ;
class Circle
{
public :
int r;
double calculateZC ( )
{
return 2 * PI * r;
}
} ;
class student
{
public :
string name;
int id;
void showstudent ( )
{
cout << "姓名:" << name << " 学号:" << id << endl;
}
void setName ( string name1)
{
name = name1;
}
void setId ( int id1)
{
id = id1;
}
} ;
class person
{
public :
string name;
protected :
string car;
private :
int password;
public :
void func1 ( )
{
name = "张三" ;
car = "拖拉机" ;
password = 123456 ;
}
} ;
struct C2
{
int A;
} ;
class C1
{
int A;
} ;
int main ( )
{
cout << "封装的意义部分:" << endl;
Circle c;
c. r = 10 ;
cout << "圆的周长为:" << c. calculateZC ( ) << endl;
cout << "\n " << endl;
student s1;
s1. setName ( "张三" ) ;
s1. setId ( 1 ) ;
s1. showstudent ( ) ;
student s2;
s2. name = "李四" ;
s2. id = 2 ;
s2. showstudent ( ) ;
cout << "\n " << endl;
person p1;
p1. name = "李四" ;
p1. func1 ( ) ;
cout << "\n " << endl;
cout << "struct 和 class的区别部分:" << endl;
C1 c1;
C2 c2;
c2. A = 100 ;
cout << "\n " << endl;
system ( "pause" ) ;
return 0 ;
}
成员属性设置为私有及其优点
# include <iostream>
using namespace std;
class Person
{
public :
void setName ( string name)
{
m_Name = name;
}
string getName ( )
{
return m_Name;
}
int getAge ( )
{
return m_Age;
}
void setAge ( int Age)
{
if ( Age < 0 || Age> 150 )
{
Age = 0 ;
cout << "输入年龄有误!返回默认值" << endl;
m_Age = Age;
return ;
}
m_Age = Age;
cout << m_Age << endl;
}
void setLover ( string lover )
{
m_Lover= lover;
}
private :
string m_Name;
int m_Age;
string m_Lover;
} ;
int main ( )
{
Person p;
p. setName ( "张三" ) ;
cout << "姓名为:" << p. getName ( ) << endl;
p. setLover ( "cang老师" ) ;
p. setAge ( - 1 ) ;
cout << "年龄为:" << p. getAge ( ) << endl;
p. setAge ( 1000 ) ;
cout << "年龄为:" << p. getAge ( ) << endl;
p. setAge ( 18 ) ;
cout << "年龄为:" << p. getAge ( ) << endl;
cout << "\n " << endl;
system ( "pause" ) ;
return 0 ;
}
封装案例一
# include <iostream>
using namespace std;
class Cube
{
public :
void setL ( double l)
{
m_L = l;
}
double getL ( )
{
return m_L;
}
void setW ( double w)
{
m_W = w;
}
double getW ( )
{
return m_W;
}
void setH ( double h)
{
m_H = h;
}
double getH ( )
{
return m_H;
}
double S ( )
{
return 2 * ( m_L * m_W + m_L * m_H + m_H * m_W) ;
}
double V ( )
{
return m_H * m_L * m_W;
}
bool isSameClass ( Cube& c)
{
if ( m_H == c. getH ( ) && m_L == c. getL ( ) && m_W == c. getW ( ) )
{
return true ;
}
return false ;
}
private :
double m_L;
double m_W;
double m_H;
} ;
bool isSame ( Cube& c1, Cube& c2)
{
if ( c1. getH ( ) == c2. getH ( ) && c1. getL ( ) == c2. getL ( ) && c1. getW ( ) == c2. getW ( ) )
{
return true ;
}
return false ;
}
int main ( )
{
cout << "案例一 " << endl;
Cube c1;
c1. setL ( 10 ) ;
c1. setH ( 10 ) ;
c1. setW ( 10 ) ;
cout << "c1的面积为:" << c1. S ( ) << endl;
cout << "c1的体积为:" << c1. V ( ) << endl;
Cube c2;
c2. setL ( 10 ) ;
c2. setH ( 10 ) ;
c2. setW ( 10 ) ;
cout << "c2的面积为:" << c2. S ( ) << endl;
cout << "c2的体积为:" << c2. V ( ) << endl;
bool ret = isSame ( c1, c2) ;
if ( ret)
{
cout << "(全局函数)c1和c2相等的" << endl;
}
else
{
cout << "(全局函数)c1和c2不相等的" << endl;
}
ret = c1. isSameClass ( c2) ;
if ( ret)
{
cout << "(成员函数)c1和c2相等的" << endl;
}
else
{
cout << "(成员函数)c1和c2不相等的" << endl;
}
cout << "\n " << endl;
system ( "pause" ) ;
return 0 ;
}
此处封装案例二,文件分写怎么写
main函数部分
# include <iostream>
# include "封装案例circle.h"
# include "封装案例point.h"
using namespace std;
void isInCircle ( Circle & c , Point & p)
{
int distance = ( c. getCenter ( ) . getX ( ) - p. getX ( ) ) * ( c. getCenter ( ) . getX ( ) - p. getX ( ) ) +
( c. getCenter ( ) . getY ( ) - p. getY ( ) ) * ( c. getCenter ( ) . getY ( ) - p. getY ( ) ) ;
int rDistance = c. getR ( ) * c. getR ( ) ;
cout << distance << endl;
cout << rDistance << endl;
if ( distance == rDistance)
{
cout << "点在圆上" << endl;
}
else if ( distance > rDistance)
{
cout << "点在圆外" << endl;
}
else
{
cout << "点在圆内" << endl;
}
}
int main ( )
{
cout << "案例二" << endl;
Circle c4;
c4. setR ( 10 ) ;
Point center;
center. setX ( 10 ) ;
center. setY ( 0 ) ;
c4. setCenter ( center) ;
Point p1;
p1. setX ( 10 ) ;
p1. setY ( 10 ) ;
isInCircle ( c4, p1) ;
Point p2;
p2. setX ( 0 ) ;
p2. setY ( 10 ) ;
isInCircle ( c4, p2) ;
Point p3;
p3. setX ( 1 ) ;
p3. setY ( 0 ) ;
isInCircle ( c4, p3) ;
cout << "\n " << endl;
system ( "pause" ) ;
return 0 ;
}
circle头文件部分
# pragma once
# include "封装案例point.h"
# include <iostream>
using namespace std;
class Circle
{
public :
void setR ( int r) ;
int getR ( ) ;
void setCenter ( Point center) ;
Point getCenter ( ) ;
private :
int m_R;
Point m_center;
} ;
point头文件部分
# pragma once
# include <iostream>
using namespace std;
class Point
{
public :
void setX ( int x) ;
int getX ( ) ;
void setY ( int y) ;
int getY ( ) ;
private :
int m_x;
int m_y;
} ;
circle.cpp分文件部分
# include "封装案例circle.h"
void Circle :: setR ( int r)
{
m_R = r;
}
int Circle :: getR ( )
{
return m_R;
}
void Circle :: setCenter ( Point center)
{
m_center = center;
}
Point Circle :: getCenter ( )
{
return m_center;
}
point.cpp分文件部分
# include "封装案例point.h"
void Point :: setX ( int x)
{
m_x = x;
}
int Point :: getX ( )
{
return m_x;
}
void Point :: setY ( int y)
{
m_y = y;
}
int Point :: getY ( )
{
return m_y;
}