diff --git a/samples/monster_generated.h b/samples/monster_generated.h
index a3a2fb2..6c7b305 100644
--- a/samples/monster_generated.h
+++ b/samples/monster_generated.h
@@ -56,7 +56,7 @@
 struct EquipmentUnion {
   Equipment type;
 
-  flatbuffers::NativeTable *table = nullptr;
+  flatbuffers::NativeTable *table;
   EquipmentUnion() : type(Equipment_NONE), table(nullptr) {}
   EquipmentUnion(const EquipmentUnion &);
   EquipmentUnion &operator=(const EquipmentUnion &);
diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp
index f308a7b..47bf370 100644
--- a/src/idl_gen_cpp.cpp
+++ b/src/idl_gen_cpp.cpp
@@ -526,7 +526,7 @@
       // Generate a union type
       code += "struct " + enum_def.name + "Union {\n";
       code += "  " + enum_def.name + " type;\n\n";
-      code += "  flatbuffers::NativeTable *table = nullptr;\n";
+      code += "  flatbuffers::NativeTable *table;\n";
       code += "  " + enum_def.name + "Union() : type(";
       code += GetEnumValUse(enum_def, *enum_def.vals.Lookup("NONE"), parser_.opts);
       code += "), table(nullptr) {}\n";
diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs
index 0369f89..41d9edb 100644
--- a/tests/monster_test.bfbs
+++ b/tests/monster_test.bfbs
Binary files differ
diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h
index e52992c..0b73b7a 100644
--- a/tests/monster_test_generated.h
+++ b/tests/monster_test_generated.h
@@ -78,7 +78,7 @@
 struct AnyUnion {
   Any type;
 
-  flatbuffers::NativeTable *table = nullptr;
+  flatbuffers::NativeTable *table;
   AnyUnion() : type(Any_NONE), table(nullptr) {}
   AnyUnion(const AnyUnion &);
   AnyUnion &operator=(const AnyUnion &);
diff --git a/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.go b/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.go
index 3de874b..00840aa 100644
--- a/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.go
+++ b/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.go
@@ -15,6 +15,10 @@
 	rcv._tab.Pos = i
 }
 
+func (rcv *StructInNestedNS) Table() flatbuffers.Table {
+	return rcv._tab.Table
+}
+
 func (rcv *StructInNestedNS) A() int32 {
 	return rcv._tab.GetInt32(rcv._tab.Pos + flatbuffers.UOffsetT(0))
 }
diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.go b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.go
index a25ae7b..0e767b8 100644
--- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.go
+++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.go
@@ -22,6 +22,10 @@
 	rcv._tab.Pos = i
 }
 
+func (rcv *TableInNestedNS) Table() flatbuffers.Table {
+	return rcv._tab
+}
+
 func (rcv *TableInNestedNS) Foo() int32 {
 	o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
 	if o != 0 {
diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.go b/tests/namespace_test/NamespaceA/SecondTableInA.go
index f53a1ea..bd691e8 100644
--- a/tests/namespace_test/NamespaceA/SecondTableInA.go
+++ b/tests/namespace_test/NamespaceA/SecondTableInA.go
@@ -22,6 +22,10 @@
 	rcv._tab.Pos = i
 }
 
+func (rcv *SecondTableInA) Table() flatbuffers.Table {
+	return rcv._tab
+}
+
 func (rcv *SecondTableInA) ReferToC(obj *TableInC) *TableInC {
 	o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
 	if o != 0 {
diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.go b/tests/namespace_test/NamespaceA/TableInFirstNS.go
index 4820a8a..b3354d3 100644
--- a/tests/namespace_test/NamespaceA/TableInFirstNS.go
+++ b/tests/namespace_test/NamespaceA/TableInFirstNS.go
@@ -22,6 +22,10 @@
 	rcv._tab.Pos = i
 }
 
+func (rcv *TableInFirstNS) Table() flatbuffers.Table {
+	return rcv._tab
+}
+
 func (rcv *TableInFirstNS) FooTable(obj *TableInNestedNS) *TableInNestedNS {
 	o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
 	if o != 0 {
diff --git a/tests/namespace_test/NamespaceC/TableInC.go b/tests/namespace_test/NamespaceC/TableInC.go
index d0d8b00..7e6c733 100644
--- a/tests/namespace_test/NamespaceC/TableInC.go
+++ b/tests/namespace_test/NamespaceC/TableInC.go
@@ -22,6 +22,10 @@
 	rcv._tab.Pos = i
 }
 
+func (rcv *TableInC) Table() flatbuffers.Table {
+	return rcv._tab
+}
+
 func (rcv *TableInC) ReferToA1(obj *TableInFirstNS) *TableInFirstNS {
 	o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
 	if o != 0 {
