const在类和函数之间的运用
第一种情况简单来说就是如果声明了一个const
类但是调用了非const
的方法.那么编译会不通过 -> const
类只能调用const
方法,非const
类就都可以调用
示例代码:
宏定义:
#pragma
#ifndef __CONST_OBJECT__
#define __CONST_OBJECT__
#include <iostream>
#include <string.h>
using namespace std;
class String
{
public:
String(const char* cstr = 0);
~String();
char* get_data() const { return m_data; }
void print() const { cout << "hello world!" << endl; };
private:
char* m_data;
};
inline String::String(const char* cstr) {
if (cstr)
{
m_data = new char[strlen(cstr) + 1];
strcpy(m_data, cstr);
}
else
{
m_data = new char[1];
*m_data = '\0';
}
}
inline String::~String() {
delete[] m_data;
}
class String_two
{
public:
String_two(const char* cstr);
~String_two();
char* get_two_char() const { return m_two_data; }
void print();
private:
char* m_two_data;
};
inline String_two::String_two(const char* cstr) {
if (cstr)
{