永发信息网

一个 C++程序,哪里错了,高手进,谢谢!

答案:2  悬赏:20  手机版
解决时间 2021-02-12 15:46
  • 提问者网友:辞取
  • 2021-02-12 04:14
5;分配大小为size的内存空间 *s='a', 0 warning(s) 哪里错了,望高手指点,谢谢;< .1\.1\:\C++上机\5.1\new delete重载;//C++上机\ function not called 执行 cl.exe 时出错. new delete重载.exe - 1 error(s);用字符串tag赋值 return s;/: see declaration of 'm' G;C++上机\.. new delete重载.cpp G:\ char *m; public: void *operator new(size_t size);delete' : error in function definition or declaration:\C++上机\5.1\new delete重载.1\delete' : 'void (void *)' differs in levels of indirection from 'void *(void *)'<: error in function definition or declaration; function not called G:operator new(size_t size,char tag) { cout<<"new2 operator",char tag);new1 operator"< G:\5: '.cpp(40) : error C2264:s'new delete重载.cpp(38) .1\<分配一块大小为size的内存 void *operator new(size_t size; G:\:\C++上机\5.1\new delete重载::operator delete(void *p) { cout class memmanager{ char *s#include <
最佳答案
  • 五星知识达人网友:玩世
  • 2021-02-12 04:46
char tag);endl;
char *s=new char[size];//修改完毕;/这里不要重复定义m.
delete[] m;
char *s=new char[size]::operator new(size_t size)
{
cout<<"new1 operator" /::operator delete[](void *p)
{
cout<; //
void *memmanager;/强制类型转换
delete[] s;
}
void main()
{memmanager *m=new memmanager().h>
using namespace std;
m=new('B') memmanager();
delete[] m;"//用字符串tag赋值
return s;/a'
char *s=(char *)p;/赋值
return s;delete operator"<<endl;&lt,你让我学到东西了.
/,char tag)
{
cout<释放指针p所指向的一块内存空间
};/VC编译成功

#include <///返回指针
}
void memmanager;
*s=tag; //<new2 operator"<<endl;返回指针
}
void *memmanager;/分配大小为size的内存空间
*s='&quot::operator new(size_t size;iostream>a'<用字符'<
char *m;
public:
void *operator new(size_t size);分配一块大小为size的内存,并且用字符tag赋值
void operator delete[](void *p);//分配一块大小为size的内存
void *operator new(size_t size;//
class memmanager{
char *s;
#include<stddef/
全部回答
  • 1楼网友:底特律间谍
  • 2021-02-12 05:48
出错原因: 自定义的类名string,与标准库里的string命名冲突了。 解决方法: 1. 自定义的类名改成别的名称; 2. 给自定义的类型加个命名空间; 用第1种解决方法修改后的代码如下: ////////////////////////////////////////////////////////////////////////// class customstring { private:     char *str; public:     customstring(char *s=" ")     {         str=new char[strlen(s)+1];         strcpy(str,s);     }     ~customstring()     {         if (str)         {             delete []str;             str=null;         }     }     void print()     {         cout<<str<<endl;     }     customstring &operator=(const customstring &s); }; customstring& customstring::operator=(const customstring &s) {     if (this==&s)         return *this;     delete []str;     str=new char[strlen(s.str)+1];     strcpy(str,s.str);     return *this; } ////////////////////////////////////////////////////////////////////////// 测试结果:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯