Re: gcc err : undefined reference to ?
still confuse :
completed code here : cygwin enviroment
// test.cpp
// use -lstdc++
#include <stdio.h>
#include <unistd.h>
#include <iostream>
#include "LinuxTerminal.h"
using namespace std;
//this printch function is just for test ,direct use this can pass the test
print
/* void printch(char* ch){
fprintf(stdout,"%c",*ch);
}
*/
int main(int argc, char *argv[])
{
char* q = new char();
*q = 'c';
printf("print a new line of doing test");
LinuxTestTerminal* lt = new LinuxTestTerminal();
lt->printch(q);
//printch(q); // direct use this can pass,but lt->printch(q) can not
,why?
while(true); // test perpose loop
}
***********************************
// Terminal.h
#ifndef __TERMINAL_H_
#define __TERMINAL_H_
class Terminal{ // this is virtual class of terminal
public:
/* <--- comment for test perpose
virtual void printch(char*) = 0;
virtual void backSpace() = 0;
virtual void printCR() = 0;
virtual void printTab() = 0;
*/
};
#endif // __TERMINAL_H_
***********************************
// LinuxTerminal.h
#ifndef __LINUXTERMINAL_H_
#define __LINUXTERMINAL_H_
#include "Terminal.h"
class LinuxTestTerminal : public Terminal{
public:
void printch(char* ch );
// void printch(char ch);
void backSpace();
void printCR();
void printTab();
};
#endif // __LINUXTERMINAL_H_
****************************************
// LinuxTerminal.cpp
void
LinuxTestTerminal::printch(char* ch){
fprintf(stdout,"%c",*ch);
}
void
LinuxTestTerminal::backSpace(){
fprintf(stdout,"\b")
}
void
LinuxTestTerminal::printCR(){
fprintf(stdout,"/n");
}
void
LinuxTestTerminal::printTab(){
fprintf(stdout,"/t");
}