C++ 程序设计解决办法

C++ 程序设计
#ifndef STRING_H
#define STRING_H
#include <string.h>
#include <iostream.h>
class String
{
friend ostream & operator<<(ostream &,const String &);
public:
 String(const char *str)
  :length(strlen(str))
 {
  sptr=new char [length];
  strcpy(sptr,str);
 }

 
private:
 int length;
 char *sptr;
};
ostream & operator<<(ostream & output,const String & string)
{
  output<<string.sptr;
  return output;
}
#endif

 
 
 
 
 
 
 
 
 
#ifndef TYPE1_H
#define TYPE1_H
#include "String.h"
class Type1Employee
{
public:
  Type1Employee(const String & first,const String & last,const String & number)
  {
  firstName=first;
  lastName=last;
  securityNumber=number;
  }
   
protected:
 String firstName;
 String lastName;
 String securityNumber;
};
#endif
 
 
 
 
 
 
 
 
 
#include <iostream.h>
#include "String.h"
#include "Type1Employee.h"
int main()
{
 String str1("I am a","Re","22-33-55");
 cout<<str1<<endl;
  return 0;
}
 

为什么用主函数调试确出现 没有默认的构造函数??

------解决方案--------------------
>没有默认的构造函数??
如果你宣告了自己的constructor,那就不会有default constructor

你可以自己测试
C/C++ code

class ccc
{
public:
    ccc(int) {}
};

int main()
{
    ccc A;
}

------解决方案--------------------
String(const char *str)
:length(strlen(str))
{
sptr=new char [length];
strcpy(sptr,str);
}
这不是已经初始化了吗?