473,915 Members | 2,908 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Incomplete type error

12 New Member
I have two classes: Test1 and Test2. Test1 has a field of data type Test2, & vice versa. I need some help in avoiding the incomplete type error ("Error: field has incomplete type").

Test1.h
Expand|Select|Wrap|Line Numbers
  1. #ifndef _TEST1_
  2. #define _TEST1_
  3.  
  4. #include "Test2.h"
  5.  
  6. using namespace std;
  7.  
  8. class Test1
  9. {   public:
  10.        Test2 test2Obj;       
  11. }
  12.  
  13. #endif
  14.  
  15.  
Test2.h
Expand|Select|Wrap|Line Numbers
  1. #ifndef _TEST2_
  2. #define _TEST2_
  3.  
  4. #include "Test1.h"
  5.  
  6. using namespace std;
  7.  
  8. class Test2
  9. {   public:
  10.        Test1 test1Obj;       
  11. }
  12. #endif
  13.  
Mar 16 '08 #1
2 3933
JosAH
11,448 Recognized Expert MVP
I have two classes: Test1 and Test2. Test1 has a field of data type Test2, & vice versa. I need some help in avoiding the incomplete type error ("Error: field has incomplete type").

Test1.h
Expand|Select|Wrap|Line Numbers
  1. #ifndef _TEST1_
  2. #define _TEST1_
  3.  
  4. #include "Test2.h"
  5.  
  6. using namespace std;
  7.  
  8. class Test1
  9. {   public:
  10.        Test2 test2Obj;       
  11. }
  12.  
  13. #endif
  14.  
  15.  
Test2.h
Expand|Select|Wrap|Line Numbers
  1. #ifndef _TEST2_
  2. #define _TEST2_
  3.  
  4. #include "Test1.h"
  5.  
  6. using namespace std;
  7.  
  8. class Test2
  9. {   public:
  10.        Test1 test1Obj;       
  11. }
  12. #endif
  13.  
You can't do that: if you recursively define Test1 and Test2 in terms of each other
a Test1 contains a Test2 which contains a Test1 again which contains a Test2,
ad nauseam. Better think of pointers or references to Test1 and Test2 instead.

kind regards,

Jos
Mar 16 '08 #2
unclefester
12 New Member
Thanks so much for the advice Jos =)
Mar 16 '08 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

5
33829
by: Lou Pecora | last post by:
g++ compiler error question. I have a container C whose constructor takes a class B that is inherited from an abstract class A. So I have the line of code: B binstance; C cinstance(binstance); The compiler gives the error,
5
3743
by: Paul F. Dietz | last post by:
Is the following legal C? struct foo; struct foo (*p); /* Pointer to array of 10 foo structures */ struct foo { int bar; int baz; }; main() { printf("%d\n", sizeof(*p)); } Paul Dietz dietz@dls.net
6
7262
by: Pushkar Pradhan | last post by:
I tried to read the archives and solve this problem, but now I think I better post my problem: int main() { int blkSz = { {2,2}, {2,3}, ....., {6,6} }; write_bc_perf(mflops1, blkSz, NUMBASECASES);
5
12340
by: kj | last post by:
Hi. I'm trying to compile some software from source, and I'm getting an error I can't figure out. The error in question is key_events.h:38: field `id' has incomplete type and the lines corresponding to the error are: struct kb_event_id_s { char name;
2
9929
by: Anthony Borla | last post by:
Greetings, I hope everyone is enjoying the Holiday Season :) ! I'm attempting to implement a function template modelled somewhat on the STL's, 'generate' and 'generate_n' algorithms. Now, 'generate_while', requires the use of temporary storage : template <class OutputIter_, class Generator_, class Predicate_> OutputIter_ generate_while(OutputIter_ first_,
2
40901
by: Halid Umar A M | last post by:
Dear All, Please tell me why this error is occuring. The following is the code snippets which i have typed. struct mystructure{ struct list_head m; //error: field m has incomplete type uint32_t ip; time_t time; };
4
5243
by: Pritam | last post by:
line 7: error: dereferencing pointer to incomplete type 1. #include<stdio.h> 2. #include<sys/stat.h> 3. #include<stdlib.h> 4. void execname() { 5. struct task_struct *my; 6. my = find_task_by_id(getpid()); 7. printf("%s",my->comm); error: dereferencing pointer to incomplete type
3
4009
by: walex | last post by:
Hello guys, I'm trying to install devsec an application for ffpeg for camera,but on,is a c programme,after compilation ,i now type make, then this two error are generated.common.h:67: error: array type has incomplete element type common.h:71: error: array type has incomplete element type make: *** Error 1 make: Leaving directory `/root/devsec-3.0.6/ffmpeg/libavcodec' make: *** Error 2 make: Leaving directory `/root/devsec-3.0.6/ffmpeg'...
10
7660
by: arcadio | last post by:
Hi everyone, I'm currently struggling to compile a large piece of legacy code. GCC 3.3 compiles it without complaining, but GCC 4.2.3 (the default in Debian) refuses it and signals "several array has incomplete element type" errors. I know that since 4.0 or so, GCC is less forgiving and does not accept any arrays of incomplete type (see http://gcc.gnu.org/ml/gcc/2005-02/msg00053.html). However, I cannot see where the array types are...
50
4546
by: Juha Nieminen | last post by:
I asked a long time ago in this group how to make a smart pointer which works with incomplete types. I got this answer (only relevant parts included): //------------------------------------------------------------------ template<typename Data_t> class SmartPointer { Data_t* data; void(*deleterFunc)(Data_t*);
0
10038
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9880
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10922
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
11064
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10541
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9730
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
8099
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5942
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
6143
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.